ref #7508 fix lazy loading exception for inverseRepresentations
authorAndreas Müller <a.mueller@bgbm.org>
Tue, 26 Jun 2018 13:33:42 +0000 (15:33 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Tue, 26 Jun 2018 13:33:42 +0000 (15:33 +0200)
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/initializer/TermBaseAutoInitializer.java

index c11f038b8f8aada6240d06c3e3224171080af77b..01a05340b2b5f8e96a26c73049304e2b38a9ae74 100644 (file)
@@ -8,6 +8,8 @@
 */\r
 package eu.etaxonomy.cdm.persistence.dao.initializer;\r
 \r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.common.RelationshipTermBase;\r
 import eu.etaxonomy.cdm.model.common.TermBase;\r
 \r
 /**\r
@@ -19,12 +21,19 @@ public class TermBaseAutoInitializer extends AutoPropertyInitializer<TermBase> {
 \r
     @Override\r
     public void initialize(TermBase bean) {\r
-       beanInitializer.initializeInstance(bean.getRepresentations());\r
+        beanInitializer.initializeInstance(bean.getRepresentations());\r
+        if (RelationshipTermBase.class.isAssignableFrom(bean.getClass())){\r
+            beanInitializer.initializeInstance(CdmBase.deproxy(bean, RelationshipTermBase.class).getInverseRepresentations());\r
+        }\r
     }\r
-    \r
+\r
     @Override\r
     public String hibernateFetchJoin(Class<?> clazz, String beanAlias) throws Exception{\r
-       return String.format(" LEFT JOIN FETCH %s.representations ", beanAlias); \r
+       String result = String.format(" LEFT JOIN FETCH %s.representations ", beanAlias);\r
+       if (RelationshipTermBase.class.isAssignableFrom(clazz)){\r
+            result += String.format(" LEFT JOIN FETCH %s.inverseRepresentations ", beanAlias);\r
+        }\r
+       return result;\r
     }\r
 \r
 }\r