Ich habe eine Entität Parent und eine Relation @OneToMany
zu einer anderen Entität Child. Die Auflistung untergeordnete Elemente ist auf "lazy loading" eingestellt.Wie kann ich eine verschachtelte Sammlung laden?
@Entity
class Parent{
@Id
String parentId;
@OneToMany(mappedBy="parent",fetch=FetchType.LAZY)
List<Child> children;
}
@Entity
class Child{
@Id
String childId;
@ManyToOne
@JoinColumn(name="parentId")
Parent parent;
}
List<Parent> loadParents() {
QParent qParent = QParent.parent;
List<Parent> parentList = query.select(qParent).from(qParent).fetch();
return parentList;
}
@Transactional
void test(){
List<Parent> parentList = loadParents();
for(Child child:parentList.getChildren()){
child.getChildId();
}
}
ich die berühmte
org.hibernate.LazyInitializationException: lazily gescheitert eine Sammlung von Rolle zu initialisieren ... konnte nicht Proxy initialisieren - keine Session
Ausnahme in die Methode test() in der Zeile, in der ich auf die Kinderliste zugreife.
Ich möchte die Annotation des Abruftyps in der Entität nicht ändern.
Wie greife ich auf die untergeordneten Entitäten zu?