使用基于 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。
没有使用休眠标准语句的经验,我不确定这是否可能?