java.lang.NoSuchMethodError:org.hibernate.cfg.Configuration.addAnnotatedClass

时间:2013-02-19 13:27:17

标签: hibernate jpa annotations hibernate-annotations persistence.xml

我是JPA& hibernate,当我尝试这个tutorial时。 我在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 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

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

的原因

您能否告诉我您目前使用哪个jar版本,请注明版本? 那么只有我们必须轻松解决这个问题。

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

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

请注明版本。  感谢。

答案 2 :(得分:1)

另外:

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

我有一个ArrayList<Entity>,当我想在arraylist中添加一个项目时,会遇到NoSuchMethodException。问题是ArrayList必须是Array

答案 3 :(得分: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>