hql语法问题

lsjlovebm 2011-09-06 04:11:19
就下面这段程序,语法错了吗??
String hql = "from Orders g where g.id=:id";
Query query = session.createQuery(hql);

query.setParameter("id", "1");
query.setFirstResult(0).setMaxResults(10);

ArrayList<Orders> l = (ArrayList<Orders>) query.list();
session.close();

for(Orders s:l){
System.out.println(s.getId());
}
为何跳出这个错误
Exception in thread "main" java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
at org.hibernate.hql.ast.HqlSqlWalker.generateNamedParameter(HqlSqlWalker.java:915)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.parameter(HqlSqlBaseWalker.java:4764)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1373)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4243)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3725)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1864)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:818)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:604)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:288)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:231)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:254)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:185)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1651)
at test.test.main(test.java:45)
...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolfiry 2011-09-06
  • 打赏
  • 举报
回复
探索查询之NHibernate查询语言(HQL)
http://www.devtutor.com/index.php?doc-view-2212.html
freedomTTT 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jun921373786 的回复:]

首先,你检查下你的字符写错没?
第二,你检查你的数据类型是否正确,我想,你的数据类型写错了吧,query.setParameter("id", "1");我想你数据库中id应该是int型的,那么这里应这样写:query.setParameter("id", 1);

你看下。。。
[/Quote]

还一个可能Orders对象,Hibernate根本没配置bean
jun921373786 2011-09-06
  • 打赏
  • 举报
回复
首先,你检查下你的字符写错没?
第二,你检查你的数据类型是否正确,我想,你的数据类型写错了吧,query.setParameter("id", "1");我想你数据库中id应该是int型的,那么这里应这样写:query.setParameter("id", 1);

你看下。。。
im110 2011-09-06
  • 打赏
  • 举报
回复
参见本人博客:

http://blog.csdn.net/im110/article/details/4617310
lsjlovebm 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fly_m 的回复:]

Exception in thread "main" java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
缺包,或者导入 的包的版本不正确,请使用和hibernate相匹配的包
[/Quote]

请问缺哪个包啊 我是myeclipse不知自动集成的吗
Fly_m 2011-09-06
  • 打赏
  • 举报
回复
Exception in thread "main" java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
缺包,或者导入 的包的版本不正确,请使用和hibernate相匹配的包

81,115

社区成员

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

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