クラス SharedEntityManagerBean
- 実装されたすべてのインターフェース:
Aware
、BeanFactoryAware
、FactoryBean<EntityManagerEE>
、InitializingBean
EntityManager
EE 参照を公開する FactoryBean
。通常、Jakarta EE サーバーの EntityManager 参照の JNDI ルックアップの直接の代替手段として、LocalContainerEntityManagerFactoryBean
によって作成された EntityManagerFactory に使用されます。共有 EntityManager は、JPA 仕様で定義されているように、アプリケーションサーバーの JNDI 環境からフェッチされた EntityManager と同じように動作します。現在のトランザクション EntityManager がある場合は、すべての呼び出しを委譲します。それ以外の場合は、操作ごとに新しく作成された EntityManager にフォールバックします。
EntityManagerFactory ではなく共有 EntityManager 参照を期待する DAO に渡すことができます。Spring の JpaTransactionManager
は、新しいトランザクション EntityManager インスタンスを作成するために、常に EntityManagerFactory を必要とすることに注意してください。
フィールドサマリー
クラス org.springframework.orm.jpa.EntityManagerFactoryAccessor から継承されたフィールド
logger
インターフェース org.springframework.beans.factory.FactoryBean から継承されたフィールド
OBJECT_TYPE_ATTRIBUTE
コンストラクターのサマリー
コンストラクター方法の概要
修飾子と型メソッド説明final void
このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。ClassSE<? extends EntityManagerEE>
この FactoryBean が作成するオブジェクトの型、または事前に不明な場合はnull
を返します。boolean
このファクトリによって管理されるオブジェクトはシングルトンですか? つまり、FactoryBean.getObject()
は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?void
setEntityManagerInterface
(ClassSE<? extends EntityManagerEE> entityManagerInterface) 公開する EntityManager インターフェースを指定します。void
setSynchronizedWithTransaction
(boolean synchronizedWithTransaction) (JPA 2.1 SynchronizationType ルールに従って)進行中のトランザクションに自動的に参加するかどうかを設定します。クラス org.springframework.orm.jpa.EntityManagerFactoryAccessor から継承されたメソッド
createEntityManager, getEntityManagerFactory, getJpaPropertyMap, getPersistenceUnitName, getTransactionalEntityManager, obtainEntityManagerFactory, setBeanFactory, setEntityManagerFactory, setJpaProperties, setJpaPropertyMap, setPersistenceUnitName
コンストラクターの詳細
SharedEntityManagerBean
public SharedEntityManagerBean()
メソッドの詳細
setEntityManagerInterface
公開する EntityManager インターフェースを指定します。デフォルトは、EntityManagerFactoryInfo で定義されている EntityManager インターフェースです(使用可能な場合)。それ以外の場合は、標準の
jakarta.persistence.EntityManager
インターフェースが使用されます。setSynchronizedWithTransaction
public void setSynchronizedWithTransaction(boolean synchronizedWithTransaction) (JPA 2.1 SynchronizationType ルールに従って)進行中のトランザクションに自動的に参加するかどうかを設定します。デフォルトは "true" です。afterPropertiesSet
public final void afterPropertiesSet()インターフェースからコピーされた説明:InitializingBean
すべての Bean プロパティを設定し、BeanFactoryAware
、ApplicationContextAware
などを満たした後、包含BeanFactory
によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
getObject
インターフェースからコピーされた説明:FactoryBean
このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。BeanFactory
と同様に、これにより、シングルトンとプロトタイプの両方の設計パターンをサポートできます。この FactoryBean が呼び出し時にまだ完全に初期化されていない場合(たとえば、循環参照に関係しているため)、対応する
FactoryBeanNotInitializedException
をスローします。FactoryBeans は
null
オブジェクトを返すことができます。Bean ファクトリはこれを通常の値と見なし、この場合はFactoryBeanNotInitializedException
をスローしません。ただし、FactoryBean 実装では、必要に応じてFactoryBeanNotInitializedException
自体をスローすることが推奨されます。- 次で指定:
- インターフェース
FactoryBean<EntityManagerEE>
のgetObject
- 戻り値:
- Bean のインスタンス (
null
にすることができます) - 関連事項:
getObjectType
インターフェースからコピーされた説明:FactoryBean
この FactoryBean が作成するオブジェクトの型、または事前に不明な場合はnull
を返します。これにより、たとえばオートワイヤーなどで、オブジェクトをインスタンス化せずに特定の型の Bean を確認できます。
シングルトンオブジェクトを作成する実装の場合、このメソッドはシングルトンの作成を可能な限り回避し、事前に型を推定する必要があります。プロトタイプの場合は、ここで意味のある型を返すことも推奨されます。
このメソッドは、この FactoryBean が完全に初期化される前に呼び出すことができます。初期化中に作成された状態に依存しないでください。もちろん、利用可能な場合はそのような状態を引き続き使用できます。
注意 : オートワイヤーは、ここで
null
を返す FactoryBeans を単に無視します。FactoryBean の現在の状態を使用して、このメソッドを適切に実装することを強くお勧めします。- 次で指定:
- インターフェース
FactoryBean<EntityManagerEE>
のgetObjectType
- 戻り値:
- この FactoryBean が作成するオブジェクトの型、または呼び出し時に不明な場合は
null
- 関連事項:
isSingleton
public boolean isSingleton()インターフェースからコピーされた説明:FactoryBean
このファクトリによって管理されるオブジェクトはシングルトンですか? つまり、FactoryBean.getObject()
は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?注意 : FactoryBean がシングルトンオブジェクトを保持していることを示している場合、
getObject()
から返されたオブジェクトは、所有する BeanFactory によってキャッシュされる可能性があります。FactoryBean が常に同じ参照を公開しない限り、true
を返さないでください。FactoryBean 自体のシングルトンステータスは、通常、所有する BeanFactory によって提供されます。通常、そこではシングルトンとして定義する必要があります。
注意 :
false
を返すこのメソッドは、返されるオブジェクトが独立したインスタンスであることを必ずしも示しません。拡張SmartFactoryBean
インターフェースの実装は、SmartFactoryBean.isPrototype()
メソッドを通じて独立したインスタンスを明示的に示す場合があります。この拡張インターフェースを実装しないプレーンなFactoryBean
実装は、isSingleton()
実装がfalse
を返す場合、常に独立したインスタンスを返すと単純に想定されます。FactoryBean
は通常シングルトンインスタンスを管理するため、デフォルトの実装ではtrue
が返されます。- 次で指定:
- インターフェース
FactoryBean<EntityManagerEE>
のisSingleton
- 戻り値:
- 公開されたオブジェクトがシングルトンかどうか
- 関連事項: