0

コンセプトに疑問があります。いくつかのものを混ぜていると思います。私はDAOレイヤーを備えたアプリケーションを持っており、それらのDAOの実装はSessionFactory(Hibernate)を使用してCRUD操作を実行しています。サービスレイヤーもあり、Spring Declarative Transactionで作業単位を管理しています。すべてがうまく機能しています。 EntityManager を使用するかどうかはわかりませんが、それが行うことは私の作業単位を管理することのようです (私が Spring で行っているのと同じことです)。

EntityManager はいつ使用する必要がありますか? それを使用する利点は何ですか?なぜ私はそれを使用する必要がありますか?

ありがとうございました。

4

1 に答える 1

2

EntityManager は JPA 用であり、SessionFactory は Hibernate 用です。JPA を使用している場合でも、Spring は引き続きトランザクションを管理できます。JPA プロバイダーが Hibernate の場合、Hibernate と JPA の両方が連携して動作するため、安全に組み合わせることができます。

ここで、EntityManager をいつ使用するかという問題とその利点について説明します。

新しいプロジェクトを開始し、JPA 2 を使用できる場合は、JPA が仕様であるため、使用を開始することをお勧めします (仕様に固執する場合は、コードを変更せずに実装を変更できることを意味します。Eclipseling、DataNucleus、 OpenJPA は、JPA 仕様の実装例です)。JPA 2 に移行できない場合は、Hibernate を使用することをお勧めします。

以下の投稿もご覧ください

Hibernate/Toplink は JPA 上で何を提供しますか?

Java永続性のためのJPAまたはHibernate?

JPA 1 では不十分

于 2010-12-27T06:13:08.593 に答える