2010-12-11 8 views
4

私は、プロジェクトから冗長なコードを排除する方法を常に探しています。SpringでHibernateを使用しているときにpersistence.xmlを取り除くことはできますか?

私はSpringでHibernateを使用しています。 SpringのJPA LocalContainerEntityManagerFactoryBeanを設定しました。これによりJPAプロバイダ(Hibernate)に多数のプロパティを渡すことができます。つまり、これらのプロパティをpersistence.xmlファイルに設定する必要はありません。

さらに、Hibernateはpersistence.xmlで実際にそれらを識別することなく自分の永続クラスを見つけることができるので、<クラス>行も消えます。

私はpersistence.xmlで1行を残しています:

<persistence-unit name="bigDatabase" transaction-type="RESOURCE_LOCAL"/> 

は、誰もが完全にpersistence.xmlを排除し、Spring構成ファイルに永続性ユニットの定義を移動する方法を知っていますか?私はもちろんグーグルリングを試みたが、答えを見つけることができなかった。

ありがとうございます!

+0

あなたは.... Hibernateのネイティブ 'SessionFactory'とJPA' EntityManager'を交換する方法 – skaffman

+1

は、JPAを使用しないでください以下コンフィグ.... – duffymo

+0

@skaffman @duffymoのTSのTSのTS、オープンスタンダード –

答えて

2

persistence.xmlは、JPA構成では必須ではありません。 EntityManagerFactory.createEntityManager(map) メソッドを使用してエンティティマネージャを作成できます。しかしLocalContainerEntityManagerFactoryBeanには、マップを持つエンティティマネージャの作成に役立つメソッドはありません。したがって、LocalContainerEntityManagerFactoryBeanを拡張し、必要に応じていくつかの方法をオーバーライドする必要があります。

+0

良い答え、悪いリンク。あなたのために正しいapiドキュメントリンクを挿入しました –

+0

http://stackoverflow.com/questions/4736301/is-persistence-xml-requied-when-working-with-spring-hibernateを参照してください – Ritesh

関連する問題