From 816b33da3f2d2bb7fb22a0352ea8d78f61cff0fc Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Tue, 10 May 2016 09:16:58 +0000 Subject: [PATCH] SSDM-3597 : refactoring SampleDAO by introducing listSampleIdsByColumn() SVN: 36521 --- .../server/dataaccess/db/SampleDAO.java | 69 +++++-------------- 1 file changed, 18 insertions(+), 51 deletions(-) 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 79ef99fd721..c70452d0613 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 @@ -720,74 +720,41 @@ public class SampleDAO extends AbstractGenericEntityWithPropertiesDAO<SamplePE> public List<TechId> listSampleIdsByContainerIds(final Collection<TechId> containers) { final List<Long> longIds = TechId.asLongs(containers); - 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; - } - }, "container.id", longIds); - if (operationLog.isDebugEnabled()) - { - operationLog.info(String.format("found %s sample components for given containers", - results.size())); - } - return transformNumbers2TechIdList(results); + return listSampleIdsByColumn("container.id", longIds, "sample components for given containers"); } @Override public List<TechId> listSampleIdsBySampleTypeIds(Collection<TechId> sampleTypeIds) { final List<Long> longIds = TechId.asLongs(sampleTypeIds); - 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; - } - }, "sampleType.id", longIds); - if (operationLog.isDebugEnabled()) - { - operationLog.info(String.format("found %s samples for given sample types", - results.size())); - } - return transformNumbers2TechIdList(results); + return listSampleIdsByColumn("sampleType.id", longIds, "samples for given sample types"); } @Override public List<TechId> listSampleIdsByExperimentIds(final Collection<TechId> experiments) { final List<Long> longIds = TechId.asLongs(experiments); + return listSampleIdsByColumn("experimentInternal.id", longIds, "samples for given experiments"); + } + + private List<TechId> listSampleIdsByColumn(String columnName, final List<Long> longIds, String message) + { final List<Long> results = DAOUtils.listByCollection(getHibernateTemplate(), new IDetachedCriteriaFactory() + { + @Override + public DetachedCriteria createCriteria() { - @Override - public DetachedCriteria createCriteria() - { - final DetachedCriteria criteria = - DetachedCriteria.forClass(SamplePE.class); - criteria.setProjection(Projections.id()); - return criteria; - } - }, "experimentInternal.id", longIds); - if (operationLog.isDebugEnabled()) - { - operationLog.info(String.format("found %s samples for given experiments", - results.size())); - } + 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) { -- GitLab