如何使用:hibernate中列表值的值?

时间:2013-08-12 12:33:54

标签: java hibernate

我知道我可以这样写:

Query query = session.createSQLQuery(
"select s.stock_code from stock s where s.stock_code = :stockCode")
.setParameter("stockCode", "7277");
List result = query.list();

如果我使用列表值,我该怎么做

select count(*) from skill where skill.id in (1,2,4)

我想要替换硬编码值。

3 个答案:

答案 0 :(得分:1)

也许:

   Query query = session.createSQLQuery("select count(*) from skill where skill.id in :ids")
    .setParameter("ids", Arrays.asList(1,2,4));

答案 1 :(得分:0)

你尝试过这样的事吗?

Query query = session.createSQLQuery(
"select s.stock_code from stock s where s.stock_code in (:stockCodes)")
.setParameter("stockCodes", "1,2,4");

它对你有用吗?

答案 2 :(得分:0)

查询界面有setParameterList(List<any>)函数来设置HQL中IN子句中的值。但是在HQL IN中,Clause有一个限制来设置元素。如果超出限制,则会发生内存溢出异常。