Hibernate 3 HQL语句in clause绑定参数的写法- -

in条件比较特殊,除了使用setParameterList方法,另外占位符还需要使用“()”括起来,否则会报错.

 

 

String hql =
                "Select p.queryTemplate.id, count(p.id) from "
                        + TemplateParameter.class.getName()
                        + " p where p.queryTemplate.id in (:idList) group by p.queryTemplate";

  List result = dao.query(hql, "idList", "1,2,3,4, 6, 10, 11, 12 ,13");

  

以上是我的UnitTest代码,但是相同的方法用在其他地方,却遇到一个ClassCactException:好像是将一个String cast 到Long,可能是因为Hibernate将id in (:idList)当作一般的诸如id=:id了,待有空再研究一下吧。

你可能感兴趣的:(Hibernate,String,list)