我有以下型号:
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
的正确用法吗?
我可以在Parent上使用FetchType.LAZY
,但在Child对象上使用FetchType.EAGER
吗?
将儿童FetchType
设置为FetchType.LAZY
会产生什么影响?
答案 0 :(得分:1)
没关系。您可以在关系的每个部分中以不同方式设置提取类型。
如果在Child中设置FetchType.LAZY,当您获得子实体时,除非您在托管上下文中导航关系,否则不会直接获得Parent的实例。