小编her*_*rti的帖子

一对多关系在不使用"distinct"的情况下获取重复对象.为什么?

我有一个一对多关系的2个类和一个有点奇怪的HQL查询.即使我已经阅读了一些已经发布的问题,但我似乎并不清楚.

Class Department{
   @OneToMany(fetch=FetchType.EAGER, mappedBy="department")
   Set<Employee> employees;
}
Class Employee{
   @ManyToOne
   @JoinColumn(name="id_department")
   Department department;
}
Run Code Online (Sandbox Code Playgroud)

当我使用以下查询时,我得到重复的Department对象:

session.createQuery("select dep from Department as dep left join dep.employees");

因此,我必须使用不同的:

session.createQuery("select distinct dep from Department as dep left join dep.employees");

这种行为是预期的吗?我认为这与SQL有所不同.

java hibernate hql distinct one-to-many

50
推荐指数
1
解决办法
4万
查看次数

标签 统计

distinct ×1

hibernate ×1

hql ×1

java ×1

one-to-many ×1