在Hibernate版本5中,我有一个带有递归
ManyToMany
当我做一个
join fetch
在关系上,我得到一个带有两个连接的查询。我认为只需要一次加入。你知道为什么会生成两个连接,或者如何修复它吗?
@Entity
public class Employee implements Comparable<Employee> {
@Id Integer id;
@ManyToMany
protected Set<Employee> opinionCitations;
// getters, setters
}
和
em.createQuery("select distinct e from Employee e left join fetch e.opinionCitations").getSingleResult();
给了我
select distinct
employee0_.id as id1_0_0_,
employee2_.id as id1_0_1_,
opinioncit1_.Employee_id as Employee1_1_0__,
opinioncit1_.opinionCitations_id as opinionC2_1_0__
from
Employee employee0_
left outer join Employee_Employee opinioncit1_ on employee0_.id=opinioncit1_.Employee_id
left outer join Employee employee2_ on opinioncit1_.opinionCitations_id=employee2_.id