67

给定以下 HQL 查询:

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

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

我想:barList使用一个List对象进行设置,但是查看 Hibernate 文档和方法列表,我看不到要使用的明显选择。有任何想法吗?

4

3 回答 3

93

使用Query.setParameterList()Javadoc 这里

有四种变体可供选择。

于 2009-02-20T16:40:11.650 回答
33

我不确定 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");
于 2009-02-20T16:33:04.537 回答
1

TorpedoQuery 中它看起来像这样

Entity from = from(Entity.class);
where(from.getCode()).in("Joe", "Bob");
Query<Entity> select = select(from);
于 2011-11-01T02:25:48.087 回答