就下面这段程序,语法错了吗??
        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)

解决方案 »

  1.   

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

  2.   


    请问缺哪个包啊 我是myeclipse不知自动集成的吗
      

  3.   

    参见本人博客:http://blog.csdn.net/im110/article/details/4617310
      

  4.   

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

  5.   


    还一个可能Orders对象,Hibernate根本没配置bean
      

  6.   

    探索查询之NHibernate查询语言(HQL)
    http://www.devtutor.com/index.php?doc-view-2212.html