2

使用Java,休眠。

我有一个查询

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。这样做的正确方法是什么?

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

4

2 回答 2

6

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

于 2012-07-18T04:37:00.240 回答
4

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

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

于 2011-02-02T18:35:28.123 回答