【发布时间】:2012-04-23 15:55:56
【问题描述】:
使用基于 Hibernate Criteria 的查询,您可以向子选择添加条件吗?
具体一个开发者有如下代码;
criteria.setFetchMode("user", FetchMode.JOIN).add(
Restrictions.eq("company.id", companyId));
他们的意图是这样的;
select a.* from tableA a where a.user in
(select b.user from tableB b where b.companyId = 'companyId')
IE '从该表中选择所有记录,该用户在用户集中具有 companyId = 'companyId' 的用户,详见另一个表。
但是,上述基于 Criteria 的语句没有按预期工作,我相信 setFetchMode 正在返回它被调用的相同条件,并且 add 语句正在将 company.id = companyId 子句添加到整体 Criteria(即 tableA )。
他们的意思是让这个“添加”语句应用于 FetchMode(即子选择)而不是 fetchmode 随后作用的 Criteria。
对休眠条件语句没有经验,我不确定这是否可能?
【问题讨论】:
标签: java hibernate criteria hibernate-criteria