Im JavaMagazin 4.08 wurde das Preload Pattern für Hibernate beschrieben. Das Pattern würde sich für meine Zwecke gut eignen, allerdings habe ich Probleme bei der Umsetzung.
Ich habe den Code eigentlich 1 zu 1 übernommen wie er im Artikel abgebildet ist. Wenn ich aber nun die Methode findAll() aufrufe dann initialisiert er die Objekte trotzdem nicht so wie erhofft.
Der Grund liegt in folgenden Codezeilen die eigentlich eine Endlosrekursion verhindern sollen:
Beim Aufruf von findAll() wird per crit.list() die Liste der Entities geholt und dann damit preload() aufgerufen. Allerdings ist der Aufruf von Hibernate.isInitialized() mit dieser Liste true und preload kehrt unverrichteter Dinge zurück.
Habe ich einen Denkfehler, oder bin ich da auf einen Fehler im Artikel gestoßen?
lg, gurks
Ich habe den Code eigentlich 1 zu 1 übernommen wie er im Artikel abgebildet ist. Wenn ich aber nun die Methode findAll() aufrufe dann initialisiert er die Objekte trotzdem nicht so wie erhofft.
Der Grund liegt in folgenden Codezeilen die eigentlich eine Endlosrekursion verhindern sollen:
Code:
if(Hibernate.isInitialized(entity)) { return; }
Habe ich einen Denkfehler, oder bin ich da auf einen Fehler im Artikel gestoßen?
lg, gurks
Comment