首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不带on子句的DetatchedCriteria

不带on子句的DetatchedCriteria
EN

Stack Overflow用户
提问于 2013-08-23 21:51:00
回答 1查看 47关注 0票数 0

我对Hibernate比较陌生。我必须使用3.2版本,并且需要使用DetachedCriteria并获得以下查询:

代码语言:javascript
复制
select this_.ID as ID0_1_, this_.SNDG as SNDG0_1_
, this_.NDG as NDG0_1_, this_.T_GWR_PARTNER_ID as T4_0_1_
, table2x1_.ID as ID1_0_, table2x1_.T_GWR_PROPOSAL_ID as T2_1_0_
, table2x1_.GROUP_SNDG as GROUP3_1_0_, table2x1_.GROUP_NAME as GROUP4_1_0_
from t_gwr_proposals this_ 
inner join 
t_gwr_proposal_ratings table2x1_ 
where table2x1_.T_GWR_PROPOSAL_ID=this_.ID

但我得到了下面的信息

代码语言:javascript
复制
select this_.ID as ID0_1_, this_.SNDG as SNDG0_1_
, this_.NDG as NDG0_1_, this_.T_GWR_PARTNER_ID as T4_0_1_
, table2x1_.ID as ID1_0_, table2x1_.T_GWR_PROPOSAL_ID as T2_1_0_
, table2x1_.GROUP_SNDG as GROUP3_1_0_, table2x1_.GROUP_NAME as GROUP4_1_0_ 
from t_gwr_proposals this_ 
inner join t_gwr_proposal_ratings table2x1_ 
** on this_.ID=table2x1_.ID ** 
where table2x1_.T_GWR_PROPOSAL_ID=this_.ID

使用以下代码:

代码语言:javascript
复制
Criteria c = session.createCriteria(T_gwr_proposals.class, "Table1");
c.createAlias("Table1.T_gwr_proposal_ratings", "Table2"); // inner join by default
c.add(Restrictions.eqProperty("Table2.t_gwr_proposal_id", "Table1.proposalsId"));
return c.list();

有人能帮帮我吗?

非常感谢,

Tommaso A.

EN

回答 1

Stack Overflow用户

发布于 2013-08-23 23:22:31

条件不适用于表,但适用于实体及其关联。您只能通过两个实体之间存在的关联来联接这两个实体。并且一个条件查询中只能存在一个根实体。因此,除非使用table2x1_.T_GWR_PROPOSAL_ID=this_.ID作为映射的实体之间存在关联,否则无法在Criteria中创建这样的查询(不过,HQL应该可以做得很好)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18404566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档