无法计算Hibernate中的记录数:java.lang.ClassCastException:java.util.ArrayList无法强制转换为java.lang.Integer

时间:2013-10-31 03:13:47

标签: mysql database hibernate parameters hql

当我尝试使用Hibernate计算记录数时,我遇到了一个非常难看的问题。通过debuging我得到HQL和相关的错误:

HQL:

SELECT COUNT(id) AS totalSize FROM UserAccount WHERE 1 = 1 AND role IN (:role_list) AND agent.id = :agentId

设置参数:

query.setParameter("role_list", parameter.getRoles());
query.setParameter("agentId", parameter.getAgentId());

错误:

java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Integer

我对此感到困惑,因为之前我使用sequence而不是name设置参数时工作正常。任何人都可以给我这个想法。

提前致谢。

1 个答案:

答案 0 :(得分:2)

愚蠢的问题,我应该使用'setParameterList'的方法设置集合参数。