2

私たちが知っているように、Hibernateには2つの永続コンテキスト、つまりorg.hibernate.Sessionjavax.persistent.EntityManager がありますが、SessionにあるメソッドのいくつかはEntityManager
にはありません。たとえば
session.delete(entity); セッションにはありますが
、EntityManagerには削除がありません
。entityManager.remove(entity);を使用する必要があります。したがって、データベース内のエンティティを永続化するために使用するコンテキストと、2つの間で高速なコンテキスト。

私が知っている違いは
、org.hibernate.Sessionのdeleteメソッドに渡されるエンティティインスタンスはマネージド状態またはデタッチ状態のいずれかですが、javax.persistence.EntityManagerでremoveに渡されるエンティティインスタンスはマネージド状態である必要があります。

4

2 に答える 2

2

パフォーマンスの違いはありません。EntityManagerHibernateは、ネイティブに加えて、JPAを介してサービスを公開するだけですSession。JPAの互換性を気にしない場合(必要な理由はわかりません)、ネイティブを使用してSessionHibernateの全機能セットを活用してください。

于 2013-01-18T14:45:29.623 に答える
0

非常に良い質問
多くの永続APIにはorg.hibernateAPIへの委任が
あるため、org.hibernateAPIを直接使用する方が良いと思います

于 2013-01-22T11:59:48.667 に答える