java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover异常

web_win_w 2008-09-26 03:29:34
HQL: select id,title,body from Bulletin where ( title like '%a%' or body like '%a%' ) and (createTime >= Mon Sep 01 00:00:00 CST 2008) and (createTime <= Sun Sep 28 23:59:59 CST 2008)
执行这条hql语句的时候出现异常:
Exception in thread "Thread-26" java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)V
at org.hibernate.hql.antlr.HqlBaseParser.identPrimary(HqlBaseParser.java:4049)
at org.hibernate.hql.antlr.HqlBaseParser.primaryExpression(HqlBaseParser.java:861)
at org.hibernate.hql.antlr.HqlBaseParser.atom(HqlBaseParser.java:3422)
at org.hibernate.hql.antlr.HqlBaseParser.unaryExpression(HqlBaseParser.java:3200)
at org.hibernate.hql.antlr.HqlBaseParser.multiplyExpression(HqlBaseParser.java:3082)
at org.hibernate.hql.antlr.HqlBaseParser.additiveExpression(HqlBaseParser.java:2802)
at org.hibernate.hql.antlr.HqlBaseParser.relationalExpression(HqlBaseParser.java:2667)
at org.hibernate.hql.antlr.HqlBaseParser.equalityExpression(HqlBaseParser.java:2449)
at org.hibernate.hql.antlr.HqlBaseParser.negatedExpression(HqlBaseParser.java:2413)
at org.hibernate.hql.antlr.HqlBaseParser.logicalAndExpression(HqlBaseParser.java:2331)
at org.hibernate.hql.antlr.HqlBaseParser.logicalOrExpression(HqlBaseParser.java:2296)
at org.hibernate.hql.antlr.HqlBaseParser.expression(HqlBaseParser.java:2082)
at org.hibernate.hql.antlr.HqlBaseParser.expressionOrVector(HqlBaseParser.java:4165)
at org.hibernate.hql.antlr.HqlBaseParser.primaryExpression(HqlBaseParser.java:944)
at org.hibernate.hql.antlr.HqlBaseParser.atom(HqlBaseParser.java:3422)
at org.hibernate.hql.antlr.HqlBaseParser.unaryExpression(HqlBaseParser.java:3200)
at org.hibernate.hql.antlr.HqlBaseParser.multiplyExpression(HqlBaseParser.java:3082)
at org.hibernate.hql.antlr.HqlBaseParser.additiveExpression(HqlBaseParser.java:2802)
at org.hibernate.hql.antlr.HqlBaseParser.concatenation(HqlBaseParser.java:570)
at org.hibernate.hql.antlr.HqlBaseParser.relationalExpression(HqlBaseParser.java:2586)
at org.hibernate.hql.antlr.HqlBaseParser.equalityExpression(HqlBaseParser.java:2449)
at org.hibernate.hql.antlr.HqlBaseParser.negatedExpression(HqlBaseParser.java:2413)
at org.hibernate.hql.antlr.HqlBaseParser.logicalAndExpression(HqlBaseParser.java:2341)
at org.hibernate.hql.antlr.HqlBaseParser.logicalOrExpression(HqlBaseParser.java:2296)
at org.hibernate.hql.antlr.HqlBaseParser.expression(HqlBaseParser.java:2082)
at org.hibernate.hql.antlr.HqlBaseParser.logicalExpression(HqlBaseParser.java:1858)
at org.hibernate.hql.antlr.HqlBaseParser.whereClause(HqlBaseParser.java:454)
at org.hibernate.hql.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:708)
at org.hibernate.hql.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:296)
at org.hibernate.hql.antlr.HqlBaseParser.statement(HqlBaseParser.java:159)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:238)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:155)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
at com.aljoin.oa.search.jdbc.impl.SearchDAO.search(SearchDAO.java:27)
at com.aljoin.oa.search.engine.database.DatabaseSearchEngine$Searcher.run(DatabaseSearchEngine.java:145)
at java.lang.Thread.run(Thread.java:595)
如果时间不加上就不会出错:and (createTime >= Mon Sep 01 00:00:00 CST 2008) and (createTime <= Sun Sep 28 23:59:59 CST 2008)
网上搜了,有人说是antlr-2.7.4.jar这个包没有,有人说是hibernate3.jar中org\hibernate\hql\antlr这个底下为空,我检查了,都有!
请指点
...全文
4905 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
janwin 2010-12-06
  • 打赏
  • 举报
回复
一般是sql语句写的不对
fanyingnew 2010-04-24
  • 打赏
  • 举报
回复
今天也发生同样的问题了
hellomiss 2010-03-02
  • 打赏
  • 举报
回复
真的不错 可以解决啊
lzy83925 2009-10-15
  • 打赏
  • 举报
回复
恩 我也犯了一样的错误 最后才发现是 HQL语句的问题 造成 HIBERNATE 不能解析你的 HQL语句 导致的错误
web_win_w 2008-10-06
  • 打赏
  • 举报
回复
国庆长假结束,又要开始工作了,祝大家节后愉快!!
4楼回复可以解决问题.根源还在研究当中.
第一次用csdn发帖解决问题.还不错.
结帖给分了.
笨沙发 2008-09-28
  • 打赏
  • 举报
回复
hibernate不支持这样写Sun Sep 28 23:59:59 CST 2008

Exception in thread "Thread-26" java.lang.NoSuchMethodError
这不说清楚了么
根据4楼的改法看下
huoyin 2008-09-28
  • 打赏
  • 举报
回复
这个可能是由于sql语句的语法错误引起的,用下面的这个试一下:
(createTime >= '2008-09-01 00:00:00') and (createTime <= '2008-09-01 23:59:59')

如果不行,你自己再改改,然后放到数据服务器上执行以下看行不行
web_win_w 2008-09-27
  • 打赏
  • 举报
回复
还是一样的问题
ker79 2008-09-27
  • 打赏
  • 举报
回复
帮顶
liaoyi_ipanel 2008-09-26
  • 打赏
  • 举报
回复
and (year(createTime) >= Mon Sep 01 00:00:00 CST 2008) and (year(createTime) <= Sun Sep 28 23:59:59 CST 2008)
前天跟老大学的...

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧