Hibernate createNativeQuery 使用 IN 子句

发布于 2024-10-15 23:59:11 字数 317 浏览 3 评论 0原文

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

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

Using Java, Hibernate.

I have a query

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

I'm not able to bind this parameter to pixIds using the code above. What is the right way to do this?

Note : the query I have here is a simplified version of my actual query.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无妨# 2024-10-22 23:59:11

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

The following method works
public Query setParameterList(String name, Collection vals) throws HibernateException

北斗星光 2024-10-22 23:59:11

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

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

Hibernate doesn't support binding collection to IN (...) in SQL queries.

You need to work the same way as with plain JDBC: given a collection, dynamically generate a query with appropriate number of ?s in IN clause, and then bind elements of that collection to ?s.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文