1

当我尝试本教程时,我是 JPA 和休眠的新手 。我在我的 persistence.xml 中添加了以下提供程序,

<provider>org.hibernate.ejb.HibernatePersistence</provider> 

我收到这个错误..

log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.addAnnotatedClass(Ljava/lang/Class;)Lorg/hibernate/cfg/Configuration;
    at org.hibernate.ejb.Ejb3Configuration.addAnnotatedClass(Ejb3Configuration.java:1421)
    at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1391)
    at org.hibernate.ejb.Ejb3Configuration.addClassesToSessionFactory(Ejb3Configuration.java:1184)
    at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1048)
    at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:291)
    at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:373)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
    at de.vogella.jpa.simple.main.Main.main(Main.java:17)

请帮助解决此错误。谢谢

4

4 回答 4

5

检查你的 Hibernate 版本,你需要 hibernate-core 3.6.0 或更高版本才能使用addAnnotatedClass方法org.hibernate.cfg.Configuration

于 2013-02-19T13:45:11.133 回答
4

看起来 Hibernate Annotation jar 是错误的。它与 jar 版本不兼容。所以这就是为什么它显示"java.lang.NoSuchMethodError"

您能告诉我您当前使用的是哪个 jar 版本,请指定版本吗?那么只有我们必须轻松解决这个问题。

您目前正在使用哪个 Hibernate 版本?

您目前正在使用哪个注释版本?

请指定版本。谢谢。

于 2013-02-19T13:43:10.270 回答
1

使用以下依赖项...

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>4.3.6.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.6.4.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-annotations</artifactId>
    <version>3.5.5-Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate.common</groupId>
    <artifactId>hibernate-commons-annotations</artifactId>
    <version>4.0.4.Final</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.7</version>
</dependency>
于 2014-10-05T05:56:45.840 回答
1

此外:

我遇到了同样的问题,在谷歌搜索答案后我来到了这个页面,但这些答案都没有帮助我,所以如果有人遇到同样的问题:

我有一个ArrayList<Entity>,当我想向数组列表添加一个项目时,遇到了 NoSuchMethodException。问题是ArrayList必须是Array.

于 2013-05-14T10:18:17.260 回答