From 3820d69d2502c5b2ca7c1e558350cc4c67ff7659 Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Tue, 14 Mar 2017 13:45:37 +0000 Subject: [PATCH] SSDM-4682 : bugix, openBIS empty trashcan breaks when num entities over 2-byte due to SQL IN SVN: 37895 --- .../dataaccess/db/EntityPropertyTypeDAO.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityPropertyTypeDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityPropertyTypeDAO.java index 7f4ef6074dc..1dc3aa1d9ab 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityPropertyTypeDAO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityPropertyTypeDAO.java @@ -279,12 +279,16 @@ final class EntityPropertyTypeDAO extends AbstractDAO implements IEntityProperty default: throw new IllegalArgumentException(entityKind.toString()); } - SQLQuery updateQuery = - session.createSQLQuery( - "update " + entityTableName + " set modification_timestamp = :timestamp where id in :entityIds "); - updateQuery.setTimestamp("timestamp", getTransactionTimeStamp()); - updateQuery.setParameterList("entityIds", entityIds); - updateQuery.executeUpdate(); + InQueryScroller<Long> updateQueryScroller = new InQueryScroller(entityIds, 1); + List<Long> partialEntityId; + while ((partialEntityId = updateQueryScroller.next()) != null) + { + SQLQuery updateQuery = session + .createSQLQuery("update " + entityTableName + " set modification_timestamp = :timestamp where id in :entityIds "); + updateQuery.setTimestamp("timestamp", getTransactionTimeStamp()); + updateQuery.setParameterList("entityIds", partialEntityId); + updateQuery.executeUpdate(); + } return null; } }); -- GitLab