在采用strtus+hibernate+spring的开发框架进行编程时,遇到了org.hibernate.QueryException: Expected positional parameter count:这个异常。
异常具体为:
dao层对应的代码为:
String queryString="from Classes where EMPLOY_NO=";
//创建查询
Query query=session.createQuery(queryString);
//执行查询获得的结果,list中的每一个元素代表一个Classes的对象
List list=query.list();
随后在检查时,发现错误总共有两点:
1.dao层对应的类中的hql语句的错误。
2.缺少对应的set方法,没有给相应的对象赋值
将源代码修改为:
String queryString="from Classes where EMPLOY_NO=?";
//创建查询
Query query=session.createQuery(queryString);
//执行查询获得的结果,list中的每一个元素代表一个Classes的对象
query.setParameter(0,EMPLOY_NO);
List list=query.list();
注意一定要有query.setParamenter()。
hql语句中where=后面有多少个问好,就有多少个query.setParamenter()!!!
本人本科软件工程学生党一枚,如有错误欢迎指正,欢迎交流。