当我尝试使用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设置参数时工作正常。任何人都可以给我这个想法。
提前致谢。
答案 0 :(得分:2)
愚蠢的问题,我应该使用'setParameterList'的方法设置集合参数。