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();
    }

}