Spring的java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!异常处理方法...

使用Spring提供的模板类HibernateDaoSupport,如果单纯的使用'命名参数'的形式编写HQL语句如:

  

 1 public class UserDaoImpl extends HibernateDaoSupport implements IUser {
 2 
 3     
 4     @Override
 5     public User login(String userName, String pwd)  {
 6          String hql="from User as u where u.username=:userName and u.password=:pwd";
 7          /*String hql="from User as u where u.username=? and u.password=?";*/
 8         List<User> list=getHibernateTemplate().find(hql,userName,pwd);
 9         if(list==null||list.size()<1){
10             return null;
11         }else {
12             return list.get(0);
13         }
14         
15     }
16 }

 

则会报java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!异常

问题发生的原因是:1.hql语句里不需要参数,却添加了一个参数,删掉添加参数的语句就可以了,

           2.参数用“?”时 ,周围不能加单引号,否则被当作字符串处理了

问题的解决方案:是把上面的使用【命名参数】的HQL语句直接改成以【问号的方式传参】,就可以解决这个问题了

 

转载于:https://www.cnblogs.com/Allen974103107/p/4787596.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值