Mr.*_*art 2 java hibernate ejb jpa java-ee
我想翻译像这样的查询:
FROM Entity_1 obj
WHERE obj IN (FROM Entity2) OR
obj IN (FROM Entity3)
Run Code Online (Sandbox Code Playgroud)
要休眠Criteria表单,而Hibernate的官方文档是不够的,因为它没有说明如何应用该IN
语句.
任何提示?
标准API没有规定添加另一个查询作为限制..我认为@Niroshan Abayakoon试图说的是你需要单独执行IN
条款的查询并将结果添加到Restrictions.in()
条件中.
List<?> entity2Data=//get data from either a query or criteria
List<?> entity3Data=//get data from either a query or criteria
Criteria c = // obtain criteria from session
// basically creates an OR condition chain
Disjunction orConditions = Restrctions.disjunction();
orConditions.add(Restrictions.in("obj", entity2Data));
orConditions.add(Restrictions.in("obj", entity3Data));
c.add(orConditions);
Run Code Online (Sandbox Code Playgroud)
这会让hibernate考虑IN
子句中的列表.
在这种情况下,最好还是回退到HQL.
归档时间: |
|
查看次数: |
22256 次 |
最近记录: |