休眠 HQL 查询:如何将集合设置为查询的命名参数?

2022-08-31 14:32:27

给定以下 HQL 查询:

FROM
    Foo
WHERE
    Id = :id AND
    Bar IN (:barList)

我使用 Query 对象的方法进行设置。:idsetInteger()

我想使用对象的a进行设置,但是查看Hibernate文档和方法列表,我看不到要使用的明显选择。有什么想法吗?:barListList


答案 1

在这里使用 JavadocQuery.setParameterList()

有四种变体可供选择。


答案 2

我不确定HQL,但在JPA中,你只需使用参数和集合调用查询。setParameter

Query q = entityManager.createQuery("SELECT p FROM Peron p WHERE name IN (:names)");
q.setParameter("names", names);

您要搜索的名称集合在哪里names

Collection<String> names = new ArrayList<String();
names.add("Joe");
names.add("Jane");
names.add("Bob");

推荐