使用IN子句Hibernate createNativeQuery

时间:2011-02-02 18:09:06

标签: java hibernate in-clause

使用Java,Hibernate。

我有一个查询

String pixIds = "1,2,3";
String query = "SELECT * FROM comment WHERE PIX_ID IN (:pixIds)";
q.setParameter("pixIds", pixIds);
List<Object[]> results =  q.getResultList();

我无法使用上面的代码将此参数绑定到pixIds。这样做的正确方法是什么?

注意:我这里的查询是我实际查询的简化版本。

2 个答案:

答案 0 :(得分:5)

以下方法有效 public Query setParameterList(String name,Collection vals)抛出HibernateException

答案 1 :(得分:4)

Hibernate不支持在SQL查询中将绑定集合到IN (...)

您需要以与使用普通JDBC相同的方式工作:给定一个集合,在?子句中动态生成具有适当数量IN的查询,然后将该集合的元素绑定到{ {1}}秒。