2010-12-27 12 views
0

私はコンセプトに疑問があります。私はいくつかのものを混ぜていると思います。私はDAO層を持つアプリケーションを持っています。DAOの実装では、SessionFactory(Hibernate)を使用してCRUD操作を実行しています。サービス層があり、Spring Declarative Transactionを使用して作業単位を管理しています。 EntityManagerを使用するかどうかは分かりませんが、それは作業単位(Springと同じこと)を管理しているようです。EntityManager + Springトランザクションの質問

いつEntityManagerを使用する必要がありますか? これを使用する利点は何ですか? どうすればいいですか?

ありがとうございます。

答えて

2

EntityManagerはJPAのためのもので、SessionFactoryはHibernateのためのものです。 JPAを使用していても、Springは引き続きトランザクションを管理できます。 JPAプロバイダがHibernateであれば、HibernateとJPAの両方を連携させるので、HibernateとJPAのものを安全に混在させることができます。あなたが新しいプロジェクトを開始していて、JPA 2を使用することができるならば、私はJPAの仕様(手段であるとして、あなたはそれを使用して起動をお勧め場合

:今のEntityManagerと利点を使用する場合の質問に来る

Eclipseling、DataNucleus、OpenJPAは、JPA仕様の実装例です)。 JPA 2に移動できない場合は、Hibernateに固執することをお勧めします。

また、以下の記事

What does Hibernate/Toplink offer above JPA?

JPA or Hibernate for Java Persistence?

JPA 1 is not good enough

を経ます
関連する問題