2010-11-21 22 views
1

オブジェクトをエンティティにマップするためにHibernateを使用しています。エンティティマネージャを使用し始めました。これは愚かな質問かもしれませんが、実際にエンティティマネージャを使用する理由は何ですか?以前は、HibernateSessionFactoryを使用してセッションを取得し、そのセッションを使用してデータをプル/プッシュしました。エンティティマネージャを使用する理由

答えて

4

EntityManagerは標準JPAの一部です。理論的には、必要に応じて実装(Hibernate、EclipseLink、OpenJPA)を切り替えることができます。可搬性を主張することは別として、両者の間に大きな違いはありません。

HibernateはJPA標準を実装しています。実際、EntityManagerには、具体的な実装に基づいて代理人がいます。 Hibernateの場合、デリゲートはSessionです。 getDelegate()に電話すると、現在のSessionが返されます。

私はJPA(EntityManager)で常にhibernateを使用しましたが、セッションを取得する必要はほとんどありませんでした。

1

EntityManagerはJPAの概念です。 JPAをHibernateで使う必要はまったくありません(JPA1の場合、私はあなたには勧めません)。

1

JPA APIを使用している場合は、EntityManagerを使用します。 EntityManagerのHibernate実装は内部的にHibernateSessionFactoryを呼び出し、Hibernateセッションを管理します。

JPAのEntityManagersは、基本的にHibernateセッションと同じ目的を果たします。

関連する問題