0
我有一個實體父母和一個關係@OneToMany
到另一個實體孩子。收集兒童設置爲延遲加載。如何延遲加載嵌套集合?
@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();
}
}
我得到了著名
org.hibernate.LazyInitializationException:無法初始化懶洋洋作用 一家集...無法初始化代理 - 沒有會話
例外我訪問子列表的行上的test()方法。
我不想更改實體中的獲取類型註釋。
如何訪問子實體?