似たような質問をたくさん見つけました
しかし、次の質問には誰も答えません。使用する従来の休止状態アプローチorg.hibernate.SessionFactory
と JPAjavax.persistence.EntityManager
実装の違いは何ですか? この JPA 実装はラッパーを使用し、ラッパーのように動作すると聞きましたが、org.hibernate.SessionFactory
それは本当ですか?
似たような質問をたくさん見つけました
しかし、次の質問には誰も答えません。使用する従来の休止状態アプローチorg.hibernate.SessionFactory
と JPAjavax.persistence.EntityManager
実装の違いは何ですか? この JPA 実装はラッパーを使用し、ラッパーのように動作すると聞きましたが、org.hibernate.SessionFactory
それは本当ですか?
それはそう。
JPAは、使用されている永続層から抽象化できるAPIです。Hibernateは、EntityManager
として機能するインターフェースの実装を提供しますadapter
-それは、hibernateと同じ基本的なメソッドを使用しますSessionManager
。
たとえば、実装をEclipse Linkに切り替えて、ソースコードを変更する必要がないという考え方です。
これがあなたの質問の答えです
org.hibernate.SessionFactory と JPA javax.persistence.EntityManager
実装を使用した従来の hibernate アプローチの違いは何ですか?
org.hibernate.SessionFactory
下線の ORM を IBatis に変更する場合 (たとえば)、コードも変更する必要があります。
javax.persistence.EntityManager
アンダーライン ORM を IBatis に変更する場合 (たとえば)、コードを変更する必要はありません。
あなたの最初の質問に、
JPA は、Java プラットフォームを使用したアプリケーションでのリレーショナル データの管理について記述した Java API 仕様です。Hibernate は、JPA 仕様に準拠した ORM (Object Relational Mapping) ライブラリです。
JPA は、Hibernate によって実装される一連のルールと考えることができます。
そして、2 番目の質問に答えてください。
JPA は単なる抽象化された永続レイヤーであるため、実装が必要です。Hibernate は、hibernate SessionManager を使用する EntityManager インターフェイスを実装します。
このようにして、実装方法から完全に切り離されます。つまり、Hibernate、OenJPA、またはその他のいずれかにいつでも切り替えることができ、追加のコード変更は必要ありません。