From 6d5d064bd6ab04cc8ce1bdf9abd14541e424df22 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Tue, 9 Nov 2010 22:26:09 +0000 Subject: [PATCH] [LMS-1866] fixed loading of samples SVN: 18614 --- .../server/dataaccess/db/SampleDAO.java | 29 ++++++++----------- 1 file changed, 12 insertions(+), 17 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 29f43837fb8..543c722f628 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 @@ -267,7 +267,8 @@ public class SampleDAO extends AbstractGenericEntityWithPropertiesDAO<SamplePE> private SamplePE tryFindContainedSampleWithUniqueSubcode(Criteria criteria, String sampleCode) { - addContainedCodeCriterion(criteria, sampleCode); + criteria.add(Restrictions.eq("code", CodeConverter.tryToDatabase(sampleCode))); + criteria.add(Restrictions.isNotNull("container")); List<SamplePE> list = cast(criteria.list()); return list.size() == 1 ? list.get(0) : null; } @@ -302,18 +303,6 @@ public class SampleDAO extends AbstractGenericEntityWithPropertiesDAO<SamplePE> addSampleContainerCriterion(criteria, containerCodeOrNull); } - private void addSampleContainerCriterion(Criteria criteria, String containerCodeOrNull) - { - if (containerCodeOrNull != null) - { - criteria.createAlias("container", "c"); - criteria.add(Restrictions.eq("c.code", CodeConverter.tryToDatabase(containerCodeOrNull))); - } else - { - criteria.add(Restrictions.isNull("container")); - } - } - private void addSampleCodeCriterion(Criteria criteria, String sampleCode) { String[] sampleCodeTokens = @@ -321,13 +310,19 @@ public class SampleDAO extends AbstractGenericEntityWithPropertiesDAO<SamplePE> String subCode = sampleCodeTokens.length > 1 ? sampleCodeTokens[1] : sampleCode; String containerCodeOrNull = sampleCodeTokens.length > 1 ? sampleCodeTokens[0] : null; criteria.add(Restrictions.eq("code", CodeConverter.tryToDatabase(subCode))); - addContainedCodeCriterion(criteria, containerCodeOrNull); + addSampleContainerCriterion(criteria, containerCodeOrNull); } - private void addContainedCodeCriterion(Criteria criteria, String sampleCode) + private void addSampleContainerCriterion(Criteria criteria, String containerCodeOrNull) { - criteria.add(Restrictions.eq("code", CodeConverter.tryToDatabase(sampleCode))); - criteria.add(Restrictions.isNotNull("container")); + if (containerCodeOrNull != null) + { + criteria.createAlias("container", "c"); + criteria.add(Restrictions.eq("c.code", CodeConverter.tryToDatabase(containerCodeOrNull))); + } else + { + criteria.add(Restrictions.isNull("container")); + } } public final void createSamples(final List<SamplePE> samples) throws DataAccessException -- GitLab