update gathering event auto initializer
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / persistence / dao / initializer / TitleAndNameCacheAutoInitializer.java
index 2f061a9086fa9569de7118eacf13656deabc4ef8..04cfd6204cf402f1c7369a1e8147c8d84084b505 100644 (file)
@@ -9,6 +9,7 @@
 */\r
 package eu.etaxonomy.cdm.persistence.dao.initializer;\r
 \r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
 import eu.etaxonomy.cdm.model.name.NonViralName;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
@@ -86,4 +87,22 @@ public class TitleAndNameCacheAutoInitializer extends AutoPropertyInitializer<Id
             bean.getTitleCache();\r
         }\r
     }\r
+\r
+       @Override\r
+       public String hibernateFetchJoin(Class<?> clazz, String beanAlias){\r
+               String result = "";\r
+               if (TaxonNameBase.class.isAssignableFrom(clazz)){\r
+                       result += String.format(" LEFT JOIN FETCH %s.rank ", beanAlias);\r
+                       result += String.format(" LEFT JOIN FETCH %s.relationsToThisName rel LEFT JOIN FETCH rel.relatedFrom ", beanAlias);\r
+                       if (NonViralName.class.isAssignableFrom(clazz)){\r
+                               result += String.format(" LEFT JOIN FETCH %s.combinationAuthorTeam ", beanAlias);\r
+                               result += String.format(" LEFT JOIN FETCH %s.exCombinationAuthorTeam ", beanAlias);\r
+                               result += String.format(" LEFT JOIN FETCH %s.basionymAuthorTeam ", beanAlias);\r
+                               result += String.format(" LEFT JOIN FETCH %s.exBasionymAuthorTeam ", beanAlias);\r
+                       }\r
+               }\r
+               return result;\r
+       }\r
+    \r
+    \r
 }\r