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