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 43caf1f12bd68ad8dc93e49f398de36c683b32ec..e3aa0e2d0b03829fc2dd1823e85ff948d1457fb9 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
@@ -146,10 +146,10 @@ final class DataDAO extends AbstractGenericEntityWithPropertiesDAO<DataPE> imple
                 @Override
                 public Object doInHibernate(Session session) throws HibernateException
                 {
-
                     InQuery inQuery = new InQuery<Long, Number>();
                     List<Number> list =
-                            inQuery.withBatch(session, "select distinct samp_id from data where samp_id in (:sampleIds)", "sampleIds", sampleIds);
+                            inQuery.withBatch(session, "select distinct samp_id from data where samp_id in (:sampleIds)", "sampleIds", sampleIds,
+                                    null);
                     Set<Long> ids = new HashSet<Long>();
                     for (Number item : list)
                     {
@@ -1343,23 +1343,6 @@ final class DataDAO extends AbstractGenericEntityWithPropertiesDAO<DataPE> imple
         scheduleDynamicPropertiesEvaluation(Arrays.asList(entity));
     }
 
-    @Override
-    protected void scheduleDynamicPropertiesEvaluation(List<DataPE> dataSets)
-    {
-        List<DataPE> toUpdate = new ArrayList<DataPE>();
-        addAllDataSetsAndComponentsRecursively(toUpdate, dataSets);
-        super.scheduleDynamicPropertiesEvaluation(toUpdate);
-    }
-
-    private void addAllDataSetsAndComponentsRecursively(List<DataPE> resultDataSets, List<DataPE> dataSets)
-    {
-        for (DataPE dataSet : dataSets)
-        {
-            resultDataSets.add(dataSet);
-            addAllDataSetsAndComponentsRecursively(resultDataSets, dataSet.getContainedDataSets());
-        }
-    }
-
     @Override
     public List<TechId> listDataSetIdsBySampleIds(final Collection<TechId> samples)
     {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/InQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/InQuery.java
index 0c587b01bbe0b425a42273fb1faf33408a5f5a54..7c747ced38b9d51d587b8ed84b61dbfb1347fd7f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/InQuery.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/InQuery.java
@@ -2,6 +2,7 @@ package ch.systemsx.cisd.openbis.generic.server.dataaccess.db;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import org.hibernate.SQLQuery;
 import org.hibernate.Session;
@@ -10,7 +11,7 @@ public class InQuery<I, O>
 {
     private static final int POSTGRES_DRIVER_MAX_ARGS = 32767; // Uses a signed 2 bytes integer
 
-    public List<O> withBatch(Session session, String inQuery, String inParameter, List<I> inArguments)
+    public List<O> withBatch(Session session, String inQuery, String inParameter, List<I> inArguments, Map<String, Object> fixParams)
     {
         List<O> result = new ArrayList<O>(inArguments.size());
 
@@ -27,6 +28,13 @@ public class InQuery<I, O>
 
             SQLQuery query = session.createSQLQuery(inQuery);
             query.setParameterList(inParameter, partialInArguments);
+            if (fixParams != null)
+            {
+                for (String paramName : fixParams.keySet())
+                {
+                    query.setParameter(paramName, fixParams.get(paramName));
+                }
+            }
             List<O> partialResult = query.list();
             result.addAll(partialResult);
             fromIndex = toIndex;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java
index c70452d06134e5255252d6c0ca7c2428ccbb8731..f45c5b6aa99225f46782a673dbe87b05dbf07f10 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java
@@ -72,7 +72,8 @@ public class SampleDAO extends AbstractGenericEntityWithPropertiesDAO<SamplePE>
 
     /**
      * This logger does not output any SQL statement. If you want to do so, you had better set an appropriate debugging level for class
-     * {@link JdbcAccessor}. </p>
+     * {@link JdbcAccessor}.
+     * </p>
      */
     private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION,
             SampleDAO.class);
@@ -648,12 +649,16 @@ public class SampleDAO extends AbstractGenericEntityWithPropertiesDAO<SamplePE>
                 @Override
                 public final Object doInHibernate(final Session session)
                 {
-                    SQLQuery query =
-                            session.createSQLQuery("select sample_id_child, sample_id_parent from " + TableNames.SAMPLE_RELATIONSHIPS_VIEW
-                                    + " where relationship_id = :relationship and sample_id_child in (:children)");
-                    query.setParameterList("children", children);
-                    query.setParameter("relationship", relationship);
-                    return query.list();
+                    InQuery inQuery = new InQuery<Long, Number>();
+                    Map<String, Object> fixParams = new HashMap<String, Object>();
+                    fixParams.put("relationship", relationship);
+
+                    List<Object> list =
+                            inQuery.withBatch(session, "select sample_id_child, sample_id_parent from " + TableNames.SAMPLE_RELATIONSHIPS_VIEW
+                                    + " where relationship_id = :relationship and sample_id_child in (:children)", "children",
+                                    new ArrayList(children),
+                                    fixParams);
+                    return list;
                 }
             });
 
@@ -729,7 +734,7 @@ public class SampleDAO extends AbstractGenericEntityWithPropertiesDAO<SamplePE>
         final List<Long> longIds = TechId.asLongs(sampleTypeIds);
         return listSampleIdsByColumn("sampleType.id", longIds, "samples for given sample types");
     }
-    
+
     @Override
     public List<TechId> listSampleIdsByExperimentIds(final Collection<TechId> experiments)
     {
@@ -741,20 +746,20 @@ public class SampleDAO extends AbstractGenericEntityWithPropertiesDAO<SamplePE>
     {
         final List<Long> results =
                 DAOUtils.listByCollection(getHibernateTemplate(), new IDetachedCriteriaFactory()
-                {
-                    @Override
-                    public DetachedCriteria createCriteria()
                     {
-                        final DetachedCriteria criteria =
-                                DetachedCriteria.forClass(SamplePE.class);
-                        criteria.setProjection(Projections.id());
-                        return criteria;
-                    }
-                }, columnName, longIds);
+                        @Override
+                        public DetachedCriteria createCriteria()
+                        {
+                            final DetachedCriteria criteria =
+                                    DetachedCriteria.forClass(SamplePE.class);
+                            criteria.setProjection(Projections.id());
+                            return criteria;
+                        }
+                    }, columnName, longIds);
         operationLog.info(String.format("found %s " + message, results.size()));
         return transformNumbers2TechIdList(results);
     }
-    
+
     @Override
     public void setSampleContainer(final Long sampleId, final Long containerId)
     {