クラス ExtendedEntityManagerCreator

java.lang.ObjectSE
org.springframework.orm.jpa.ExtendedEntityManagerCreator

public abstract class ExtendedEntityManagerCreator extends ObjectSE
JPA 仕様の「拡張」EntityManagers のセマンティクスに準拠したさまざまな EntityManager プロキシを作成するためのデリゲート。

「拡張」EntityManagers のいくつかのバリエーションをサポートします。具体的には、EntityManagerFactory.createEntityManager() で定義される「アプリケーション管理の拡張 EntityManager」と、PersistenceContextType.EXTENDED で定義される「コンテナー管理の拡張 EntityManager」です。

「アプリケーション管理」と「コンテナー管理」の元々の違いは、「アプリケーション」の場合は EntityManager.joinTransaction() メソッドを介して外部管理トランザクションを明示的に結合する必要があるのに対し、「コンテナー」の場合はユーザーレベルの EntityManager 操作ごとに自動的に結合されるという点でした。JPA 2.1 以降、両方の結合モードが両方の種類の EntityManagers で利用可能になったため、「アプリケーション管理」と「コンテナー管理」の違いは、主に結合モードのデフォルトと、コンテナー管理 EntityManager(つまり、注入先のオブジェクトに紐付けられている)のライフサイクルの制限にあります。

導入:
2.0
作成者:
Juergen Hoeller, Rod Johnson, Mark Paluch
関連事項:
  • EntityManagerFactory.createEntityManager()
  • PersistenceContextType.EXTENDED
  • EntityManager.joinTransaction()
  • SharedEntityManagerCreator
  • コンストラクターの詳細

    • ExtendedEntityManagerCreator

      public ExtendedEntityManagerCreator()
  • メソッドの詳細

    • createApplicationManagedEntityManager

      public static jakarta.persistence.EntityManager createApplicationManagedEntityManager(jakarta.persistence.EntityManager rawEntityManager, EntityManagerFactoryInfo emfInfo)
      アプリケーション管理の拡張 EntityManager プロキシを作成します。
      パラメーター:
      rawEntityManager - 飾る生の EntityManager
      emfInfo - EntityManagerFactoryInfo から JpaDialect および PersistenceUnitInfo を取得する
      戻り値:
      トランザクションに参加できるが、トランザクションには自動的には参加しないアプリケーション管理の EntityManager
    • createApplicationManagedEntityManager

      public static jakarta.persistence.EntityManager createApplicationManagedEntityManager(jakarta.persistence.EntityManager rawEntityManager, EntityManagerFactoryInfo emfInfo, boolean synchronizedWithTransaction)
      アプリケーション管理の拡張 EntityManager プロキシを作成します。
      パラメーター:
      rawEntityManager - 飾る生の EntityManager
      emfInfo - EntityManagerFactoryInfo から JpaDialect および PersistenceUnitInfo を取得する
      synchronizedWithTransaction - 進行中のトランザクションに自動的に参加するかどうか (JPA 2.1 SynchronizationType ルールに準拠)
      戻り値:
      トランザクションに参加できるが、トランザクションには自動的には参加しないアプリケーション管理の EntityManager
      導入:
      4.0
    • createContainerManagedEntityManager

      public static jakarta.persistence.EntityManager createContainerManagedEntityManager(jakarta.persistence.EntityManager rawEntityManager, EntityManagerFactoryInfo emfInfo)
      コンテナー管理の拡張 EntityManager プロキシを作成します。
      パラメーター:
      rawEntityManager - 飾る生の EntityManager
      emfInfo - EntityManagerFactoryInfo から JpaDialect および PersistenceUnitInfo を取得する
      戻り値:
      マネージドトランザクションに自動的に参加するコンテナー管理の EntityManager
    • createContainerManagedEntityManager

      public static jakarta.persistence.EntityManager createContainerManagedEntityManager(jakarta.persistence.EntityManagerFactory emf)
      コンテナー管理の拡張 EntityManager プロキシを作成します。
      パラメーター:
      emf - EntityManager を作成する EntityManagerFactory。これが EntityManagerFactoryInfo インターフェースを実装する場合、対応する JpaDialect と PersistenceUnitInfo はそれに応じて検出されます。
      戻り値:
      マネージドトランザクションに自動的に参加するコンテナー管理の EntityManager
      関連事項:
      • EntityManagerFactory.createEntityManager()
    • createContainerManagedEntityManager

      public static jakarta.persistence.EntityManager createContainerManagedEntityManager(jakarta.persistence.EntityManagerFactory emf, @Nullable MapSE<?,?> properties)
      コンテナー管理の拡張 EntityManager プロキシを作成します。
      パラメーター:
      emf - EntityManager を作成する EntityManagerFactory。これが EntityManagerFactoryInfo インターフェースを実装する場合、対応する JpaDialect と PersistenceUnitInfo はそれに応じて検出されます。
      properties - createEntityManager 呼び出しに渡されるプロパティ (null の場合があります)
      戻り値:
      マネージドトランザクションに自動的に参加するコンテナー管理の EntityManager
      関連事項:
      • EntityManagerFactory.createEntityManager(java.util.Map)
    • createContainerManagedEntityManager

      public static jakarta.persistence.EntityManager createContainerManagedEntityManager(jakarta.persistence.EntityManagerFactory emf, @Nullable MapSE<?,?> properties, boolean synchronizedWithTransaction)
      コンテナー管理の拡張 EntityManager プロキシを作成します。
      パラメーター:
      emf - EntityManager を作成する EntityManagerFactory。これが EntityManagerFactoryInfo インターフェースを実装する場合、対応する JpaDialect と PersistenceUnitInfo はそれに応じて検出されます。
      properties - createEntityManager 呼び出しに渡されるプロパティ (null の場合があります)
      synchronizedWithTransaction - 進行中のトランザクションに自動的に参加するかどうか (JPA 2.1 SynchronizationType ルールに準拠)
      戻り値:
      コンテナー主導のライフサイクル管理を想定しているが、自動トランザクション同期をオプトアウトする可能性があるコンテナー管理の EntityManager
      導入:
      4.0
      関連事項:
      • EntityManagerFactory.createEntityManager(java.util.Map)