hibernate普通参数与命名参数查询

一直以为,dao层和顶级service层我都封装好了,在平时代码中根本不用触动,所以对hibernate的一些细节也有点生疏了,今天,突然想增加一个能带命名参数查询的功能,可是,凡调用带命名参数查询的方法时,都报
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Integer,

我就纳闷了,难道是我返回的类型与我定义的类型不一样?调了半天,根本没进我赋值这里,干脆只调用不赋值,还是报同样的错误,这就奇了怪了,spring里自带的hibernateTemplate却能命名参数查询,我为什么不能,看了spring的源码,我汗,原来hibernate在设置参数时,参数值不同的类型,设置参数时调用的方法不一样,如果参数值是集合或数组,调用的方法setParameterList,否则调用的是setParameter,哎hibernate在这一点报错上没做的更人性化啊,底层没做太多判断啊,直接就把jdk的异常抛出来。特做个笔记,以后备查。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值