JPQL出错

时间:2013-05-12 14:41:37

标签: jpa jpql

我有JPA和JPQL的问题。我有下一个问题:

String query="SELECT c from Cliente c";
Query quer=em.createQuery("Select c from Cliente c");
List<Cliente> lista= quer.getResultList();

当我执行该操作时,我遇到以下错误:

  

[java]线程“main”中的异常java.lang.NoClassDefFoundError:antlr / RecognitionException        [java] org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory.createQueryTranslator(ASTQueryTranslatorFactory.java:59)        [java] org.hibernate.engine.query.spi.HQLQueryPlan。(HQLQueryPlan.java:103)        [java] at org.hibernate.engine.query.spi.HQLQueryPlan。(HQLQueryPlan.java:80)        [java] org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168)        [java] org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:221)        [java] org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:199)        [java] org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1735)        [java] org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:291)        [java] at test.TestCliente.main(TestCliente.java:35)        [java]引起:java.lang.ClassNotFoundException:antlr.RecognitionException        [java] at java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)        [java] at java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)        [java] java.security.AccessController.doPrivileged(Native Method)        [java] at java.net.URLClassLoader.findClass(URLClassLoader.java:354)        [java] java.lang.ClassLoader.loadClass(ClassLoader.java:423)        [java] at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)        [java] java.lang.ClassLoader.loadClass(ClassLoader.java:356)        [java] ... 9更多

CLiente类是可访问的,但我无法进行查询。

任何人都知道为什么?

编辑:在classpath中是RecognitionException类,我可以导入他,所以我不知道是什么问题。

1 个答案:

答案 0 :(得分:4)

你很可能有错误的antlr jar。我只是在一个使用hibernate的maven项目中查找过。

我有hibernate-core-4.1.8和antlr-2.7.7,它可以在那里工作。

您始终可以在特定版本的hibernate-core的pom.xml中查找正确的版本。

请务必修复两个位置以获取正确的版本号 例如。对于4.1.8:

http://repo1.maven.org/maven2/org/hibernate/hibernate-core/4.1.8.Final/hibernate-core-4.1.8.Final.pom
                                                           ^ ^ ^                      ^ ^ ^

或浏览到版本概述:http://repo1.maven.org/maven2/org/hibernate/hibernate-core/并选择您的版本,然后选择“pom.xml”。在dependencies部分查看antlr条目,然后在那里。