From: Andreas Müller Date: Tue, 26 Jun 2018 13:33:42 +0000 (+0200) Subject: ref #7508 fix lazy loading exception for inverseRepresentations X-Git-Tag: 5.1.0^2~3 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/commitdiff_plain/390d8116fe6a462337314aaf354c903c3df05347 ref #7508 fix lazy loading exception for inverseRepresentations --- diff --git a/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/initializer/TermBaseAutoInitializer.java b/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/initializer/TermBaseAutoInitializer.java index c11f038b8f..01a05340b2 100644 --- a/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/initializer/TermBaseAutoInitializer.java +++ b/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/initializer/TermBaseAutoInitializer.java @@ -8,6 +8,8 @@ */ package eu.etaxonomy.cdm.persistence.dao.initializer; +import eu.etaxonomy.cdm.model.common.CdmBase; +import eu.etaxonomy.cdm.model.common.RelationshipTermBase; import eu.etaxonomy.cdm.model.common.TermBase; /** @@ -19,12 +21,19 @@ public class TermBaseAutoInitializer extends AutoPropertyInitializer { @Override public void initialize(TermBase bean) { - beanInitializer.initializeInstance(bean.getRepresentations()); + beanInitializer.initializeInstance(bean.getRepresentations()); + if (RelationshipTermBase.class.isAssignableFrom(bean.getClass())){ + beanInitializer.initializeInstance(CdmBase.deproxy(bean, RelationshipTermBase.class).getInverseRepresentations()); + } } - + @Override public String hibernateFetchJoin(Class clazz, String beanAlias) throws Exception{ - return String.format(" LEFT JOIN FETCH %s.representations ", beanAlias); + String result = String.format(" LEFT JOIN FETCH %s.representations ", beanAlias); + if (RelationshipTermBase.class.isAssignableFrom(clazz)){ + result += String.format(" LEFT JOIN FETCH %s.inverseRepresentations ", beanAlias); + } + return result; } }