SQL 如何将值列表作为参数设置为休眠查询?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/6584898/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to set list of values as parameter into hibernate query?
提问by yura
For example, I have this query
例如,我有这个查询
select cat from Cat cat where cat.id in :ids
and I want to set ids to list (1,2,3,4,5,6,17,19).
我想将 ids 设置为列表 (1,2,3,4,5,6,17,19)。
This code doesn't work
此代码不起作用
session.createQuery("select cat from Cat cat where cat.id in :ids")
.setParameter("ids", new Long[]{1,2,3,4,5})
As the result I would like to have SQL query like id in (1,2,3,4)
结果我想要像这样的 SQL 查询 id in (1,2,3,4)
回答by sblundy
Use setParameterList()
. You'll also have to put parenthesis around the list param.
使用setParameterList()
. 您还必须在列表参数周围加上括号。
session.createQuery("select cat from Cat cat where cat.id in (:ids)").setParameterList("ids", new Long[]{1,2,3,4,5})