Hibernate由孩子加载孩子

时间:2016-09-08 13:06:44

标签: hibernate jboss lazy-loading wildfly dao

也许有人知道我的问题更好的解决方案。 在以下之前从一个子节点调用父对象时,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;
  }

0 个答案:

没有答案