diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java index 17ae4aab17c3a7d3674531cd1ecd1a9aaebea7cc..4e4b6c7c4640ef662e55ef7955b1ec4daf7564d5 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java @@ -1220,7 +1220,15 @@ final class DataDAO extends AbstractGenericEntityWithPropertiesDAO<DataPE> imple final String query = "select " + side1 + " from data_set_relationships where " + side2 + " in (:ids) and relationship_id = :type"; - return findRelatedIds(query, dataSetIds, relationshipTypeId); + InQueryScroller<TechId> dataSetIdsScroller = new InQueryScroller<>(dataSetIds, 2); + List<TechId> partialDataSetIds = null; + Set<TechId> result = new HashSet<>(); + while ((partialDataSetIds = dataSetIdsScroller.next()) != null) + { + Set<TechId> partialResult = findRelatedIds(query, partialDataSetIds, relationshipTypeId); + result.addAll(partialResult); + } + return result; } @SuppressWarnings("unchecked")