当前位置: 代码迷 >> J2EE >> org.hibernate.QueryParameterException: Position beyond number of declared ordina解决方案
  详细解决方案

org.hibernate.QueryParameterException: Position beyond number of declared ordina解决方案

热度:387   发布时间:2016-04-22 01:24:58.0
org.hibernate.QueryParameterException: Position beyond number of declared ordina
org.hibernate.QueryParameterException: Position beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based! Position: 1
我的查询语句是这样的,求解答。
Java code
List<Admin> list= this.getHibernateTemplate().find("from domain.Admin admin where admin.name =? and admin.password=?", admin.getName(),admin.getPassword());


------解决方案--------------------
admin.getName(),admin.getPassword() 你确定这俩个参数不为空么?


------解决方案--------------------
List<Admin> list= this.getHibernateTemplate().find("from domain.Admin admin where admin.name =? and admin.password=?", admin.getName(),admin.getPassword());

你用的那个版本 啊, 好像没这样 用的吧getHibernateTemplate().find(hql,param[])
------解决方案--------------------
源码是否是这个?
hibernate版本是 3.0.1
Java code
public List find(final String queryString, final Object... values) throws DataAccessException {        return executeWithNativeSession(new HibernateCallback<List>() {            public List doInHibernate(Session session) throws HibernateException {                Query queryObject = session.createQuery(queryString);                prepareQuery(queryObject);                if (values != null) {                    for (int i = 0; i < values.length; i++) {                        queryObject.setParameter(i, values[i]);                    }                }                return queryObject.list();            }        });    }
  相关解决方案