diff --git a/dspace-api/src/main/java/org/dspace/content/dao/impl/BitstreamDAOImpl.java b/dspace-api/src/main/java/org/dspace/content/dao/impl/BitstreamDAOImpl.java index 99b3c59815c5..9e8913e4a2a7 100644 --- a/dspace-api/src/main/java/org/dspace/content/dao/impl/BitstreamDAOImpl.java +++ b/dspace-api/src/main/java/org/dspace/content/dao/impl/BitstreamDAOImpl.java @@ -148,15 +148,15 @@ public Iterator findByItem(Context context, Item item) throws SQLExce public Iterator findShowableByItem(Context context, UUID itemId, String bundleName) throws SQLException { Query query = createQuery( context, - "select b.id from Bitstream b " + - "join b.bundles bitBundle " + - "join bitBundle.items item " + + "select bitstream.id from Bundle bundle " + + "join bundle.items item " + + "join bundle.bitstreams bitstream " + "WHERE item.id = :itemId " + "and NOT EXISTS( " + " select 1 from MetadataValue mv " + " join mv.metadataField mf " + " join mf.metadataSchema ms " + - " where mv.dSpaceObject = b and " + + " where mv.dSpaceObject = bitstream and " + " ms.name = 'bitstream' and " + " mf.element = 'hide' and " + " mf.qualifier is null and " + @@ -169,13 +169,14 @@ public Iterator findShowableByItem(Context context, UUID itemId, Stri " from MetadataValue mvB " + " join mvB.metadataField mfB " + " join mfB.metadataSchema msB " + - " where mvB.dSpaceObject = bitBundle and " + + " where mvB.dSpaceObject = bundle and " + " msB.name = 'dc' and " + " mfB.element = 'title' and " + " mfB.qualifier is null and " + " mvB.value = :bundleName " + " )" + - ")" + ")" + + " ORDER BY INDEX(bitstream)" ); query.setParameter("itemId", itemId);