休止状態のエラー – AnnotationConfigurationインスタンスが使用する必要があります
Hibernateアノテーションは、セッションファクトリを構築するために通常の “Configuration()”の代わりに “AnnotationConfiguration”が必要です。
INFO: Configuration resource:/hibernate.cfg.xml
Initial SessionFactory creation failed.org.hibernate.MappingException:
An AnnotationConfiguration instance is required to use <mapping class="com.mkyong.common.Stock"/>
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.mkyong.persistence.HibernateUtil.buildSessionFactory(HibernateUtil.java:19)
at com.mkyong.persistence.HibernateUtil.<clinit>(HibernateUtil.java:8)
at com.mkyong.common.App.main(App.java:11)
Caused by: org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="com.mkyong.common.Stock"/>
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1600)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
at com.mkyong.persistence.HibernateUtil.buildSessionFactory(HibernateUtil.java:13)
... 2 more
解決策
1. Hibernateアノテーションライブラリをダウンロードする
ライブラリはhttps://www.hibernate.org/397.html[Hibernate official website]からダウンロードできます。
または
Mavenのpom.xmlに依存関係を追加する
<!-- Hibernate annotation -->
<dependency>
<groupId>hibernate-annotations</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.3.0.GA</version>
</dependency>
P。Hibernateアノテーションライブラリをダウンロードするには、JBossリポジトリをインクルードする必要があります。
<repositories>
<repository>
<id>JBoss repository</id>
<url>http://repository.jboss.com/maven2/</url>
</repository>
</repositories>
2. AnnotationConfigurationを使用してセッションファクトリを構築する
通常のHibernate XMLファイルマッピングはConfiguration()を使用しています
return new Configuration().configure().buildSessionFactory();
Hibernateアノテーションの場合、それを “AnnotationConfiguration”に変更する必要があります。
return new AnnotationConfiguration().configure().buildSessionFactory();
HibernateUtil.java
Hibernate注釈の適用のために “AnnotationConfiguration”を使用する “HibernateUtil.java”の完全な例。
package com.mkyong.persistence;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
//Create the SessionFactory from hibernate.cfg.xml
return new AnnotationConfiguration().configure().buildSessionFactory();
}
catch (Throwable ex) {
//Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void shutdown() {
//Close caches and connection pools
getSessionFactory().close();
}
}