gpt4 book ai didi

java - 子查询中IN子句的Hibernate Criteria等效项?

转载 作者:行者123 更新时间:2023-12-04 10:15:41 25 4
gpt4 key购买 nike

我想翻译这样一个查询:

FROM Entity_1 obj
WHERE obj IN (FROM Entity2) OR
obj IN (FROM Entity3)

hibernate 条件表单,官方documentation of 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);

这将进入 hibernate 状态以考虑 IN 子句中的列表。

在这种情况下回退到 HQL 总是更好。

关于java - 子查询中IN子句的Hibernate Criteria等效项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7344701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com