hibernate : Repetition in FetchMode. 加入

标签 hibernate criteria hibernate-criteria

我有一个部门表和一个雇员表。 dept 表与 emp 表与 deptId 存在一对多关系。

当我尝试这段代码时:

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 生成的查询中的重复呢?

请告知如何删除这些重复。

问候,

最佳答案

有一些解决方法:

  1. 您可以将项目添加到 HashSetLinkedHashSet - 这将 删除重复项或
  2. 您可以尝试使用不同的获取模式。有关获取模式的详细信息,请参阅此链接 here - 我使用 SUBSELECT 取得了相当好的结果。

关于 hibernate : Repetition in FetchMode. 加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10968179/

相关文章:

java - 标准 Hibernate 排序依据

java - 集合值的 Hibernate 标准

java - 如何创建 Hibernate Criteria 以按集合的某些属性进行排序

java - Hibernate 使用 javax.sql.DataSource 实例

hibernate - Hibernate3 Grails3插件

用于选择具有空子集合的所有实体的 nHibernate 标准

java - 将 HQL 转换为条件

hibernate - 带有 createSQLQuery 的 ResultTransformer 在实体字段中强制不使用驼峰命名法

java - 防止 hibernate/jpa 创建代理

java - 如何在可执行 jar 文件中运行 lombok 功能?