如何将值列表设置为休眠查询的参数?

Posted

技术标签:

【中文标题】如何将值列表设置为休眠查询的参数?【英文标题】:How to set list of values as parameter into hibernate query? 【发布时间】:2011-09-28 22:03:08 【问题描述】:

例如,我有这个查询

 select cat from Cat cat where cat.id in :ids 

我想将 ID 设置为列表 (1,2,3,4,5,6,17,19)。

此代码不起作用

session.createQuery("select cat from Cat cat where cat.id in :ids")
       .setParameter("ids", new Long[]1,2,3,4,5)

因此,我希望有像id in (1,2,3,4) 这样的 SQL 查询

【问题讨论】:

【参考方案1】:

使用setParameterList()。您还必须在列表参数周围加上括号。

session.createQuery("select cat from Cat cat where cat.id in (:ids)").setParameterList("ids", new Long[]1,2,3,4,5)

【讨论】:

setParameterList 在较新的休眠模式中已被废弃。我们如何传递这个?我尝试使用 setparameter 并没有得到正确的行为......

以上是关于如何将值列表设置为休眠查询的参数?的主要内容,如果未能解决你的问题,请参考以下文章

休眠。将字符串参数设置为 char 25

使用带有休眠 SQL 查询的多列的参数化 IN 子句

如何将值传递给休眠的sqlRestriction?

将休眠查询的结果转置为 POJO 列表

休眠从对象中延迟获取嵌套列表

命名查询休眠