【发布时间】:2010-10-08 21:16:16
【问题描述】:
给定以下 HQL 查询:
FROM
Foo
WHERE
Id = :id AND
Bar IN (:barList)
我使用 Query 对象的 setInteger() 方法设置了 :id。
我想使用List 对象设置:barList,但是查看Hibernate 文档和方法列表,我看不到使用哪个明显的选择。有什么想法吗?
【问题讨论】:
给定以下 HQL 查询:
FROM
Foo
WHERE
Id = :id AND
Bar IN (:barList)
我使用 Query 对象的 setInteger() 方法设置了 :id。
我想使用List 对象设置:barList,但是查看Hibernate 文档和方法列表,我看不到使用哪个明显的选择。有什么想法吗?
【问题讨论】:
使用Query.setParameterList()、Javadoc here。
有四种变体可供选择。
【讨论】:
javax.persistence.Query 则无效。只是我的两分钱。
我不确定 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");
【讨论】:
在TorpedoQuery 中看起来像这样
Entity from = from(Entity.class);
where(from.getCode()).in("Joe", "Bob");
Query<Entity> select = select(from);
【讨论】: