我有以下模型:

public class Parent {

  @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "parent",
      orphanRemoval = true)
  @Fetch(FetchMode.SELECT)
  private List<Child> children = new ArrayList<Child>();

}

public class Child {

  @ManyToOne(fetch = FetchType.EAGER)
  @JoinColumn(name = "parent_id")
  private Parent parent;

}


这是FetchType的正确用法吗?
我可以在父对象上使用FetchType.LAZY,在子对象上使用FetchType.EAGER吗?
同样将孩子的FetchType设置为FetchType.LAZY有什么影响?

最佳答案

没关系。您可以在关系的每个部分中设置不同的获取类型。

如果在子级中设置FetchType.LAZY,则在获得子级实体时,将不会直接获得父级实例,除非您在托管上下文中导航关系。

10-08 08:42