我有一对多关联,并且FetchType是LAZY。我知道休眠将为延迟加载的实体创建代理对象。但是,如果子实体是Collection类型,它将如何工作?会为每个集合对象创建代理吗?例如:-
public class Company {
private String name;
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
private Set<Employee> employees;
}
如果您不参与交易,将抛出LazyInitializationException
。这很好,因为您知道此查询必须热切地获取它们。
N
个子代,则需要对数据库进行N+1
调用,这也称为N + 1 select problem。