我有一个dept表和一个emp表。 dept表与emp表有一对多的关系。
当我尝试这段代码时:
session.createCriteria(Dept.class).setFetchMode("empMap", FetchMode.JOIN)
.list();
这是我的控制台中为hibernate生成的sql查询生成的输出:
select this_.DEPT_ID as DEPT1_1_1_, this_.DEPT_NAME as DEPT2_1_1_,
empmap2_.DEPT_ID as DEPT3_3_, empmap2_.EMP_ID as EMP1_3_,
empmap2_.EMP_ID as formula0_3_, empmap2_.EMP_ID as EMP1_0_0_,
empmap2_.EMP_NAME as EMP2_0_0_, empmap2_.DEPT_ID as DEPT3_0_0_,
empmap2_.AGE as AGE0_0_, empmap2_.SEX as SEX0_0_
from dept this_, emp empmap2_
where this_.DEPT_ID=empmap2_.DEPT_ID(+)
在生成的hibernate查询中,我可以清楚地看到emp表的列中有重复。但我不希望这些重复出现。那么如何避免在hibernate生成的查询中重复呢?
请告知如何删除这些重复。
此致
答案 0 :(得分:2)
有一些解决方法:
HashSet
或LinkedHashSet
- 这将是
删除重复项或SUBSELECT
获得了不错的结果。