From cc9316c4921ceaba80b82f9d1b10319dc47d874d Mon Sep 17 00:00:00 2001 From: felmer <franz-josef.elmer@id.ethz.ch> Date: Mon, 9 Dec 2019 11:46:05 +0100 Subject: [PATCH] SSDM-9096: DataDAO.mapDataSetIdsByChildrenIds() reads data in batches --- .../generic/server/dataaccess/db/DataDAO.java | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) 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 7c7c9eff3f6..c0030f12e56 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 @@ -739,11 +739,6 @@ final class DataDAO extends AbstractGenericEntityWithPropertiesDAO<DataPE> imple lockRelatedEntities(dataset); getHibernateTemplate().saveOrUpdate(dataset); - - if (operationLog.isInfoEnabled()) - { - operationLog.info(String.format("ADD: data set '%s'.", dataset)); - } } private void lockRelatedEntities(DataPE data) @@ -1183,12 +1178,13 @@ final class DataDAO extends AbstractGenericEntityWithPropertiesDAO<DataPE> imple @Override public final Object doInHibernate(final Session session) { - SQLQuery query = - session.createSQLQuery("select data_id_child, data_id_parent from " + TableNames.DATA_SET_RELATIONSHIPS_VIEW - + " where relationship_id = :relationship and data_id_child in (:children)"); - query.setParameterList("children", children); - query.setParameter("relationship", relationship); - return query.list(); + InQuery<Long, Object> inQuery = new InQuery<>(); + Map<String, Object> fixParams = new HashMap<String, Object>(); + fixParams.put("relationship", relationship); + + String query = "select data_id_child, data_id_parent from " + TableNames.DATA_SET_RELATIONSHIPS_VIEW + + " where relationship_id = :relationship and data_id_child in (:children)"; + return inQuery.withBatch(session, query, "children", new ArrayList<>(children), fixParams); } }); -- GitLab