java - 如何在 hql/hibernate 中的值集中使用 equals?

标签 java hibernate orm hql

我想使用如下查询:

  from myModel t
 where t.f inEqual(1,2,3,4,5)

而不是这个:

  from myModel t
 where     t.f = 1
       and t.f = 2
       and t.f = 3
       and t.f = 4
       and t.f = 5

或者也许是这样:

  from myModel t
 where t.f inGreaterThan(1,2,3,4,5)

而不是这个:

  from myModel t
 where     t.f > 1
       and t.f > 2
       and t.f > 3
       and t.f > 4
       and t.f > 5

实际上,inEqualinGreaterThan不是hql中的函数,但我想使用一些东西

最佳答案

您只能对多个“或”执行此操作:

List<String> valueList = new ArrayList<>();
valueList.add("1");valueList.add("2");valueList.add("3");

Query query2 = session.createQuery("from myModel t where t.f in (:values)").setParameterList("values", valueList);
query2.list();

对于多个“与”和大于等,hibernate Criteria 不提供任何 API。如果您想要这样的操作,可以选择 QueryDSL

Query DSL 为此提供了 inAll()goeAll() 等。

关于java - 如何在 hql/hibernate 中的值集中使用 equals?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32623203/

相关文章:

java - 尝试使用 java 运行 sql 查询时出现 406 错误

java - java中如何修改引用变量的值

java - 如何使用 Hibernate Envers 从 RevisionEntity 获取 RevisionType?

java.lang.ClassCastException : java. lang.Long 无法转换为 [Ljava.lang.Long;迭代数据库中的值

java - 如何使用 Spring Data 在代码中使用自动生成的 ID?

java - 即使数据库不存在,也可以使用 Hibernate 即时创建 PostgreSQL 数据库

java - Hibernate ORM 设计策略

c# - 为什么 C/C++ 有头文件,不像 C# 和 Java 等其他语言?

java - 如何在 JavaFX 中异步执行需要一些 GUI 操作的较长运行任务?

java - Spring Boot Rest Controller 中与 Jackson @JsonIgnore 合作 MongoDB 延迟加载