码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-09-07 00:27:41      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:

使用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语句直接改成以【问号的方式传参】,就可以解决这个问题了

 

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

标签:

原文地址:http://www.cnblogs.com/Allen974103107/p/4787596.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!