Hallo zusammen,
ich habe ein sehr rätselhaftes Problem mit Sub-Klassen. Ich verwende die aktuelle Hibernate-Versionen jedoch mit aktueller Collection-Library (im Hibernate-Download ist ja ne veraltete Version).
Ich habe folgende Klassen:
Code:
class ForumThread {
...
@OneToMany(fetch=FetchType.EAGER,mappedBy="thread")
private List<ThreadPage> pages = Collections.synchronizedList(new Vector<ThreadPage>());
...
}
class ThreadPage {
...
private ForumThread thread;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "threadPage")
@Sort(type = SortType.NATURAL)
public SortedSet<ForumPost> posts;
...
}
class ForumPost {
...
@ManyToOne
private ThreadPage threadPage;
...
}
Ich möchte jetzt alle ForumThread-Objekte mit bestimmten IDs laden.
Code:
Query q = session.createQuery("from ForumThread where id in (1,2,3,4)");
List result = q.list();
Anhand der EAGER-Definitionen werden jetzt alle entsprechenden ThreadPages sowie die Posts dazugeladen. Das Problem ist, dass aus mir nicht erklärlichen Gründen bei mehreren ForumThreads ein ForumPost fehlt.
Ich habe zur Protokollierung die SQL-Angaben ausgeben lassen:
Code:
log4j.logger.org.hibernate.SQL=ALL
log4j.logger.org.hibernate.type=ALL
Da ist zu sehen, dass der SQL-Befehl erstmal alle ForumPosts korrekt liefert und dass Hibernate diese auch korrekt abarbeitet. Lediglich im Ergbnis, also wenn ich durch result durchlaufe, fehlen die Posts. Ich habe den Durchlauf gleich nach dem Laden durchgeführt, um Seiteneffekte zu verhindern.
Ich hab in der Bugliste keinen entsprechenden Eintrag gefunden. Hat jemand eine Idee, wie ich das Problem lösen bzw. umgehen kann?
Gruß
Wurstbrot