当前位置: 代码迷 >> J2EE >> java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover解决方案
  详细解决方案

java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover解决方案

热度:260   发布时间:2016-04-22 02:12:20.0
java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover
我在执行

List list=this.getSessionFactory().openSession().createQuery(SQL).list()
其中这个类继承了org.springframework.orm.hibernate3.support.HibernateDaoSupport
SQL为Select * from users where use_id = 123 and use_password = 123

时报错如下

严重: Servlet.service() for servlet action threw exception
java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)V

我在网络上找了些资料
有的说是SQL语句错误,可是我在数据库上执行的时候能顺利的找到数据
也有的说缺少antlr这个包
我也myeclipse底下的antlr-2.7.6.jar包添加到LIB里
可还是报错,我没办法了,请帮忙看看,谢谢


------解决方案--------------------
注意方法使用错误。
createQuery必须是针对HQL查询,
hql的话要看你这个Users表映射的是那个实体,
对应的使用SELECT a FROM org.test.Users a WHERE a.userId='123' AND a.usePassword='123'
如果你想要使用sql那方法必须是createSQLQuery
  相关解决方案