我有以下模型:
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,则在获得子级实体时,将不会直接获得父级实例,除非您在托管上下文中导航关系。