您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Hibernate Create Criteria两次连接同一张表-尝试了2种方法,但有2个差异错误

Hibernate Create Criteria两次连接同一张表-尝试了2种方法,但有2个差异错误

关于2005年打开的问题,还有一个旧的Hibernate错误HHH-879org.hibernate.QueryException: duplicate association path仍在打开…

其他问题已关闭,但没有解决方HHH-7882

因此,选项1)不太适合。

但是,在上述错误的意见的有用 解决方法 是使用提及exists

因此,请使用两次sqlRestrictionexists并使用一个相关的子查询来过滤属性类别。您将获得唯一的 企业 连接到这两个类别。

crit.add( Restrictions.sqlRestriction( 
  "exists (select null from Company_Customercategory a where {alias}.company_Id = a.company_Id and a.CUSTOMERCATEGORYID = ?)",
  1, IntegerType.INSTANCE ) );
crit.add( Restrictions.sqlRestriction( 
  "exists (select null from Company_Customercategory a where {alias}.company_Id = a.company_Id and a.CUSTOMERCATEGORYID = ?)",
  6, IntegerType.INSTANCE ) );

这导致以下查询提供正确的结果

select this_.COMPANY_ID as COMPANY_ID1_2_0_, this_.COMPANY_NAME as COMPANY_NAME2_2_0_ 
from COMPANIES this_ 
where exists (select null from Company_Customercategory a 
              where this_.company_Id = a.company_Id and a.CUSTOMERCATEGORYID =  ?) and 
      exists (select null from Company_Customercategory a 
              where this_.company_Id = a.company_Id and a.CUSTOMERCATEGORYID = ?)
其他 2022/1/1 18:15:04 有569人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶