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 276ea2b3430a..823c6c4fc500 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 @@ -152,9 +152,15 @@ public int countDeleted(Context context) throws SQLException { @Override public int countWithNoPolicy(Context context) throws SQLException { Query query = createQuery(context, - "SELECT count(bit.id) from Bitstream bit where bit.deleted<>true and bit.id not in" + - " (select res.dSpaceObject from ResourcePolicy res where res.resourceTypeId = " + - ":typeId )"); + "SELECT count(bit.id) " + + "FROM Bitstream bit " + + "WHERE bit.deleted <> true " + + "AND NOT EXISTS (" + + " SELECT 1 FROM ResourcePolicy res " + + " WHERE res.resourceTypeId = :typeId " + + " AND res.dSpaceObject.id = bit.id" + + ")" + ); query.setParameter("typeId", Constants.BITSTREAM); return count(query); }