也许有人知道我的问题更好的解决方案。 在以下之前从一个子节点调用父对象时,Hibernate不会加载所有子节点:
Parent = Child.getParent();
List<Child> children = Parent.getChildren(); //Only one child inside list
此时我的解决方案是从给定的子节点获取parentId并再次从DAO加载父对象。现在,所有的孩子都可以被召唤:
String parentId = Child.getParentId();
Parent parent = parentDao.findById(parentId);
List<Child> children = Parent.getChildren(); //Every child is in list
也许有更好的方式而不是DAO电话?!
感谢。
编辑:
以下是子类的getParent()方法:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "ID_PARENT", referencedColumnName = "ID_PARENT", insertable = false,
updatable = false, nullable = false)})
public Parent getParent() {
return this.parent;
}
这是来自父类的getChildren()方法:
@OneToMany(fetch = FetchType.LAZY, mappedBy = "parent", cascade = {CascadeType.ALL})
@OrderBy("order ASC")
public Set<Children> getChildren() {
return this.children;
}