From 5172b31f7a8858f63489d40bde8efcb18df1439f Mon Sep 17 00:00:00 2001
From: juanf <juanf@ethz.ch>
Date: Fri, 27 Jan 2023 11:42:12 +0100
Subject: [PATCH] SSDM-13195 : Hibernate fixes, modifying PE layer to use DAO
 for parents/children

---
 .../generic/server/dataaccess/IRelationshipTypeDAO.java   | 2 ++
 .../generic/server/dataaccess/db/RelationshipTypeDAO.java | 2 +-
 .../server/dataaccess/db/SampleRelationshipDAO.java       | 8 ++++----
 .../cisd/openbis/generic/shared/dto/SamplePE.java         | 5 +++--
 4 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IRelationshipTypeDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IRelationshipTypeDAO.java
index df2b38365ef..3269ee56b6e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IRelationshipTypeDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IRelationshipTypeDAO.java
@@ -29,4 +29,6 @@ public interface IRelationshipTypeDAO extends IGenericDAO<RelationshipTypePE>
      */
     public RelationshipTypePE tryFindRelationshipTypeByCode(String code);
 
+    public Long getRelationshipTypeId(String code);
+
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/RelationshipTypeDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/RelationshipTypeDAO.java
index 86ff093d4cb..65b32059c12 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/RelationshipTypeDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/RelationshipTypeDAO.java
@@ -69,7 +69,7 @@ public class RelationshipTypeDAO extends AbstractGenericEntityDAO<RelationshipTy
         return type;
     }
 
-    private synchronized Long getRelationshipTypeId(String code)
+    public synchronized Long getRelationshipTypeId(String code)
     {
         if (relationshipTypeIdsMap == null)
         {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleRelationshipDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleRelationshipDAO.java
index 58803d51c76..2f9df6bf8b9 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleRelationshipDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleRelationshipDAO.java
@@ -36,17 +36,17 @@ public class SampleRelationshipDAO extends AbstractGenericEntityDAO<SampleRelati
     }
 
     public List<SampleRelationshipPE> listSampleParents(List<Long> childrenTechIds) {
-        RelationshipTypePE relationshipType = relationshipTypeDAO.tryFindRelationshipTypeByCode(BasicConstant.PARENT_CHILD_INTERNAL_RELATIONSHIP);
+        Long typeId = relationshipTypeDAO.getRelationshipTypeId(BasicConstant.PARENT_CHILD_INTERNAL_RELATIONSHIP);
         final DetachedCriteria criteria = DetachedCriteria.forClass(SampleRelationshipPE.class);
-        criteria.add(Restrictions.eq("relationship.id", relationshipType.getId()));
+        criteria.add(Restrictions.eq("relationship.id", typeId));
         criteria.add(Restrictions.in("childSample.id", childrenTechIds));
         return cast(getHibernateTemplate().findByCriteria(criteria));
     }
 
     public List<SampleRelationshipPE> listSampleChildren(List<Long> parentTechIds) {
-        RelationshipTypePE relationshipType = relationshipTypeDAO.tryFindRelationshipTypeByCode(BasicConstant.PARENT_CHILD_INTERNAL_RELATIONSHIP);
+        Long typeId = relationshipTypeDAO.getRelationshipTypeId(BasicConstant.PARENT_CHILD_INTERNAL_RELATIONSHIP);
         final DetachedCriteria criteria = DetachedCriteria.forClass(SampleRelationshipPE.class);
-        criteria.add(Restrictions.eq("relationship.id", relationshipType.getId()));
+        criteria.add(Restrictions.eq("relationship.id", typeId));
         criteria.add(Restrictions.in("parentSample.id", parentTechIds));
         return cast(getHibernateTemplate().findByCriteria(criteria));
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SamplePE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SamplePE.java
index 13d3991caec..5e8a2400139 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SamplePE.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SamplePE.java
@@ -43,9 +43,10 @@ import javax.persistence.Version;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Pattern;
 
-import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.relationship.IGetRelationshipIdExecutor;
 import ch.systemsx.cisd.openbis.generic.server.CommonServiceProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.*;
+import ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant;
+import ch.systemsx.cisd.openbis.generic.shared.basic.IIdHolder;
+import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentityHolder;
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
 import org.apache.commons.lang3.builder.ToStringBuilder;
-- 
GitLab