hibernate报错ClassCastException:ArrayList cannot be casttoLong

报错如图:
在这里插入图片描述

hibernate中批量操作使用in 关键字时,in (:param) 为一个集合,去setParameter的时候需要使用setParameterList

例如批量update操作:

String hql = "update model1 set age=:age where name in (:names)";
org.hibernate.Query query = getSession().createQuery(hql);
        query.setParameterList("names", names);
        query.setParameter("age", age);
        return query.executeUpdate();

如果names也使用setParameter则会报上面的错。

原因:因为hibernate对于非集合与集合都有特定的解析器,如果集合选择了非集合的解析器,则无法转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值