クラス ExtendedEntityManagerCreator
java.lang.ObjectSE
org.springframework.orm.jpa.ExtendedEntityManagerCreator
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
- 関連事項:
コンストラクターの概要
コンストラクター方法の概要
修飾子と型メソッド説明static jakarta.persistence.EntityManagercreateApplicationManagedEntityManager(jakarta.persistence.EntityManager rawEntityManager, EntityManagerFactoryInfo emfInfo) アプリケーション管理の拡張 EntityManager プロキシを作成します。static jakarta.persistence.EntityManagercreateApplicationManagedEntityManager(jakarta.persistence.EntityManager rawEntityManager, EntityManagerFactoryInfo emfInfo, boolean synchronizedWithTransaction) アプリケーション管理の拡張 EntityManager プロキシを作成します。static jakarta.persistence.EntityManagercreateContainerManagedEntityManager(jakarta.persistence.EntityManagerFactory emf) コンテナー管理の拡張 EntityManager プロキシを作成します。static jakarta.persistence.EntityManagercreateContainerManagedEntityManager(jakarta.persistence.EntityManagerFactory emf, @Nullable MapSE<?, ?> properties) コンテナー管理の拡張 EntityManager プロキシを作成します。static jakarta.persistence.EntityManagercreateContainerManagedEntityManager(jakarta.persistence.EntityManagerFactory emf, @Nullable MapSE<?, ?> properties, boolean synchronizedWithTransaction) コンテナー管理の拡張 EntityManager プロキシを作成します。static jakarta.persistence.EntityManagercreateContainerManagedEntityManager(jakarta.persistence.EntityManager rawEntityManager, EntityManagerFactoryInfo emfInfo) コンテナー管理の拡張 EntityManager プロキシを作成します。
コンストラクターの詳細
ExtendedEntityManagerCreator
public ExtendedEntityManagerCreator()
メソッドの詳細
createApplicationManagedEntityManager
public static jakarta.persistence.EntityManager createApplicationManagedEntityManager(jakarta.persistence.EntityManager rawEntityManager, EntityManagerFactoryInfo emfInfo) アプリケーション管理の拡張 EntityManager プロキシを作成します。- パラメーター:
rawEntityManager- 飾る生の EntityManageremfInfo- EntityManagerFactoryInfo から JpaDialect および PersistenceUnitInfo を取得する- 戻り値:
- トランザクションに参加できるが、トランザクションには自動的には参加しないアプリケーション管理の EntityManager
createApplicationManagedEntityManager
public static jakarta.persistence.EntityManager createApplicationManagedEntityManager(jakarta.persistence.EntityManager rawEntityManager, EntityManagerFactoryInfo emfInfo, boolean synchronizedWithTransaction) アプリケーション管理の拡張 EntityManager プロキシを作成します。- パラメーター:
rawEntityManager- 飾る生の EntityManageremfInfo- 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- 飾る生の EntityManageremfInfo- EntityManagerFactoryInfo から JpaDialect および PersistenceUnitInfo を取得する- 戻り値:
- マネージドトランザクションに自動的に参加するコンテナー管理の EntityManager
createContainerManagedEntityManager
public static jakarta.persistence.EntityManager createContainerManagedEntityManager(jakarta.persistence.EntityManagerFactory emf) コンテナー管理の拡張 EntityManager プロキシを作成します。- パラメーター:
emf- EntityManager を作成する EntityManagerFactory。これが EntityManagerFactoryInfo インターフェースを実装する場合、対応する JpaDialect と PersistenceUnitInfo はそれに応じて検出されます。- 戻り値:
- マネージドトランザクションに自動的に参加するコンテナー管理の EntityManager
- 関連事項:
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
- 関連事項:
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
- 関連事項: