java - HQL如何以对象列表作为一组条件查询表?

标签 java hibernate hql

我有一个名为 form 的类

Class Form {
    String id;
    String version;
    String minVersion;  
}

现在我有一个List<Form>与我一起。 我必须查询一个满足条件的表,以便 id、版本、类型全部作为一个集合满足即。我想从我的列表中找到与表中完全相同的所有 {id, version, minVersion}。例如

我有一张这样的 table

+----+---------+------------+---------+
| id | version | minVersion | passage |
+----+---------+------------+---------+
|  1 |       2 |          2 | Hi      |
|  1 |       3 |          1 | Hello   |
|  2 |       2 |          2 | Hi      |
|  3 |       3 |          3 | Hi      |
+----+---------+------------+---------+

I want to select 2 rows from it given as a List: {id: 1, version: 3, minVersion: 1} and {id: 2, version: 2, minVersion: 2}

I wrote a query like this,

SELECT id, version, type, passage FROM Content WHERE (id, version, type) IN (:id, :version, :minVersion);

但是如何转换为HSQL并为其设置参数呢?

最佳答案

如果您的表尺寸很小,建议获取特定于 java 层中的 ids 和过滤器的所有元素

请在查询和 setParameterList API 中使用 IN 语法。

例如:

String hql = "从内容中选择 id、版本、类型、段落,其中 id in (:ids)"

在形成查询时使用

Query query = session.createQuery(hql);
query.setParameterList("ids", idList);

Refer this

关于java - HQL如何以对象列表作为一组条件查询表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61059899/

相关文章:

java - hql 与 @CollectionTable 联接

spring - spring 中 jpa 实体的自动扫描包

java - Spring 动态 JPA 存储库类型

java - hibernate 将 Set<Enum> 存储到数据库中

java - 如何使用 Hibernate 填充 JTable?

java - 如何使用hibernate hql从表中批量删除记录?

java - 插件使用 GAE 不支持的类是否会导致运行时错误或在部署时启动

java - java中单个类的线程减少

java - 无法编辑 mp3 标签

Java NIO Files count()方法统计行数