0

我知道我可以这样写:

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)

我想替换硬编码值。

4

3 回答 3

1

也许:

   Query query = session.createSQLQuery("select count(*) from skill where skill.id in :ids")
    .setParameter("ids", Arrays.asList(1,2,4));
于 2013-08-12T12:40:17.687 回答
0

查询接口具有设置HQL 子句中setParameterList(List<any>)的值的功能。IN但是在 HQLIN子句中设置元素是有限制的。如果超出限制,就会发生内存溢出异常。

于 2013-08-12T12:42:08.747 回答
0

你有没有尝试过这样的事情?

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

对你起作用吗?

于 2013-08-12T12:38:55.440 回答