0

Jboss AS 7.1.1 にデプロイされた EAR ファイルがあります。

EJB プロジェクトの 1 つで、META-INF フォルダーの下に persistence.xml ファイルがあります。DB でバッチ更新を行う必要があったため、セッション ファクトリを取得するために次のコードを作成しました。

private SessionFactory buildSessionFactory() throws Exception {
        SessionFactory factory = null;
        try{
        Configuration configuration = new Configuration();
        configuration.addResource("/META-INF/persistence.xml");
        configuration.configure().setProperty("hibernate.show_sql", "false"); ---> **throws error**
        ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
        factory = configuration.buildSessionFactory(serviceRegistry);
        }
        catch (Throwable t){
            throw new Exception(t);
        }
        return factory;
    }

問題は、私が得ていることです: org.hibernate.HibernateException: /hibernate.cfg.xml not found

persistence.xml代わりにファイルを使用するように休止状態に指示するにはどうすればよいhibernate.cfg.xmlですか?

アップデート:

間違った方法を使用したことがわかりました:

configuration.addResource("/META-INF/persistence.xml");

次のようにする必要があります。

configuration.configure("/META-INF/persistence.xml");

しかし、Jboss persistence.xml は hibernate.cfg.xml と同じ構造を持たないため、別の問題が発生し、無効な構成例外が発生します。

ここで取るべき正しいコースは何ですか?

4

1 に答える 1

0

JPAを介してHibernateを使用できますが、コードの一部を書き直す必要があります-SessionFactoryをEntityManagerに変更するなど。他の方法は、hibernate.cfg.xml構成を記述し、コードに触れずにネイティブのHibernateを使用することです.

于 2012-08-02T10:47:25.597 に答える