【发布时间】:2012-02-19 07:49:47
【问题描述】:
假设我有一个 JPA 实体和一个查询:
@Entity
public class MyEntity {
@OneToMany(fetch = FetchType.LAZY)
private List<ChildEntity> children = new ArrayList<ChildEntity>();
}
public List<MyEntity> fetchAll() {
return em.createQuery("select distinct e from MyEntity e join fetch e.children")
.getResultList();
}
如果没有 distinct 关键字,它将做 MyEntity 和 e.children 的叉积。
同时使用 distinct 和 join fetch 来避免集合的 N+1 Select 问题是否被认为是一种好习惯?有副作用吗?
【问题讨论】:
标签: java hibernate jpa architecture