我收到了以下错误
java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)V
org.hibernate.hql.antlr.HqlBaseParser.selectFrom(HqlBaseParser.java:1173)
org.hibernate.hql.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:702)
org.hibernate.hql.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:296)
org.hibernate.hql.antlr.HqlBaseParser.statement(HqlBaseParser.java:159)
org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:248)
执行以下hql时
select object(o),p.dateApply,p.reason,p.Approver from Person as o "+
" com.jpa.entities.Application as p where o.id = p.nricNo and o.batchNumber= :batchNo
如果我删除以下查询
p.dateApply,p.reason,p.Approver
它工作得很好。我想要的是从Person实体和Application实体返回值。
希望有人可以帮助我,因为我是HQL的新手。
答案 0 :(得分:1)
听起来你有不兼容的与Hibernate相关的JAR,或者某些或所有JAR的重复。也许是因为你升级到不同版本的Hibernate而没有删除旧的JAR(或类似的东西)。
如果在lib1.jar和lib2.jar中找到com.my.MyClass类的不同版本,并且类加载器从lib1.jar加载MyClass,但是“正确的”MyClass(具有JRE方法的那个)在lib2.jar中找到了,你会遇到你正在看到的问题。