Jpa JPQL错误

Jpa JPQL错误,jpa,jpql,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(); String query=“从客户c中选择c”; Query Query=em.createQuery(“从客户机c中选择c”); List lista=query.

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

String query="SELECT c from Cliente c";
Query quer=em.createQuery("Select c from Cliente c");
List<Cliente> lista= quer.getResultList();
String query=“从客户c中选择c”;
Query Query=em.createQuery(“从客户机c中选择c”);
List lista=query.getResultList();
当我执行该操作时,我出现以下错误:

线程“main”java.lang.NoClassDefFoundError中的[java]异常:antlr/RecognitionException [java]位于org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory.createQueryTranslator(ASTQueryTranslatorFactory.java:59) [java]位于org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:103) [java]位于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]位于test.TestCliente.main(TestCliente.java:35) [java]原因:java.lang.ClassNotFoundException:antlr.RecognitionException [java]位于java.net.URLClassLoader$1.run(URLClassLoader.java:366) [java]位于java.net.URLClassLoader$1.run(URLClassLoader.java:355) [java]位于java.security.AccessController.doPrivileged(本机方法) [java]位于java.net.URLClassLoader.findClass(URLClassLoader.java:354) [java]位于java.lang.ClassLoader.loadClass(ClassLoader.java:423) [java]位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) [java]位于java.lang.ClassLoader.loadClass(ClassLoader.java:356) [java]。。。9更多

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

有人知道为什么吗


编辑:类路径中有类识别异常,我可以导入它,所以我不知道问题出在哪里。

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

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

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

确保将两个位置固定为正确的版本号 e、 G.对于4.1.8:

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

或者浏览到版本概述:并选择您的版本,然后选择“pom.xml”。在
dependencies
部分中查找
antlr
条目,您很可能找到了错误的antlr jar。我只是在我的一个使用hibernate的maven项目中查找了它

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

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

确保将两个位置固定为正确的版本号 e、 G.对于4.1.8:

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


或者浏览到版本概述:并选择您的版本,然后选择“pom.xml”。查看
dependencies
部分中的
antlr
条目,您就看到了。

您似乎遇到了类路径问题。确保Hibernate依赖的antlr版本位于类路径中。您是如何将Hibernate添加到项目中的?你应该知道。检查您是否列出了一个antlr jar文件,并且它的版本是Hibernate期望的版本。我将antlr库添加到类路径中,但它不起作用。您有什么版本的Hibernate和什么版本的antlr jar?antlr v4和Hibernate-core-4.1.8,hibernate entitymanger 4.1.8和hibernate annotations 4.0.1似乎存在类路径问题。确保Hibernate依赖的antlr版本位于类路径中。您是如何将Hibernate添加到项目中的?你应该知道。检查您是否列出了一个antlr jar文件,并且它的版本是Hibernate期望的版本。我将antlr库添加到类路径中,但它不起作用。您有什么版本的Hibernate和什么版本的antlr jar?antlr v4和Hibernate-core-4.1.8、Hibernate entitymanger 4.1.8和Hibernate annotations 4.0.1谢谢!该版本失败。我不装那个安卓罐子,它就可以工作了。非常感谢。我正在使用hibernate 5.0.11和antlr 3.5.2,但不起作用。@e-info128您需要2.7.7看看hibernate内核的pom。这就是依赖结构@e-info128我在回答中添加了有关如何获得正确版本信息的信息。请检查。我的解决方案:删除marven文件夹(~/.m2/)并重新下载,库antlr已损坏。谢谢!该版本失败。我不装那个安卓罐子,它就可以工作了。非常感谢。我正在使用hibernate 5.0.11和antlr 3.5.2,但不起作用。@e-info128您需要2.7.7看看hibernate内核的pom。这就是依赖结构@e-info128我在回答中添加了有关如何获得正确版本信息的信息。请检查。我的解决方案:删除marven文件夹(~/.m2/)并再次下载,库antlr已损坏。