クラス AbstractEntityManagerFactoryBean

java.lang.ObjectSE
org.springframework.orm.jpa.AbstractEntityManagerFactoryBean
実装されているすべてのインターフェース:
SerializableSE, Aware, BeanClassLoaderAware, BeanFactoryAware, BeanNameAware, DisposableBean, FactoryBean<jakarta.persistence.EntityManagerFactory>, InitializingBean, SmartFactoryBean<jakarta.persistence.EntityManagerFactory>, SmartInitializingSingleton, PersistenceExceptionTranslator, EntityManagerFactoryInfo
既知の直属サブクラス
LocalContainerEntityManagerFactoryBean, LocalEntityManagerFactoryBean

public abstract class AbstractEntityManagerFactoryBean extends ObjectSE implements SmartFactoryBean<jakarta.persistence.EntityManagerFactory>, BeanClassLoaderAware, BeanFactoryAware, BeanNameAware, InitializingBean, SmartInitializingSingleton, DisposableBean, EntityManagerFactoryInfo, PersistenceExceptionTranslator, SerializableSE
抽象 FactoryBean は、Spring アプリケーションコンテキスト内にローカル JPA EntityManagerFactory インスタンスを作成します。7.0 以降では、SmartFactoryBean を介して共有 EntityManager インスタンスも公開されるため、EntityManager も依存性注入に利用できるようになります。

スタンドアロンとコンテナーの両方を含む、様々な JPA ブートストラップ契約に共通する機能をカプセル化します。7.0 以降、JPA 3.2 PersistenceConfiguration メカニズムもサポートされており、より豊富なスタンドアロンブートストラップオプションが利用可能になります。

標準の JPA 構成規則と Spring のカスタマイズ可能な JpaVendorAdapter メカニズムのサポートを実装し、EntityManagerFactory のライフサイクルを制御します。

このクラスは、Spring の PersistenceExceptionTranslationPostProcessor によって自動検出された PersistenceExceptionTranslator インターフェースも実装し、ネイティブ例外を Spring DataAccessExceptions に AOP ベースで変換します。たとえば LocalEntityManagerFactoryBean が存在すると、PersistenceExceptionTranslationPostProcessor は JPA 例外を自動的に変換できるようになります。

導入:
2.0
作成者:
Juergen Hoeller, Rod Johnson
関連事項:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected final org.apache.commons.logging.Log
    サブクラスで利用可能なロガー。

    インターフェース FactoryBean から継承されたフィールド

    OBJECT_TYPE_ATTRIBUTE
  • コンストラクターの概要

    コンストラクター
    コンストラクター
    説明
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。
    void
    シングルトン事前インスタンス化フェーズの終わりに呼び出され、すべての通常のシングルトン Bean がすでに作成されていることを保証します。
    protected jakarta.persistence.EntityManagerFactory
    createEntityManagerFactoryProxy(@Nullable jakarta.persistence.EntityManagerFactory emf)
    指定された EntityManagerFactory のプロキシを作成します。
    jakarta.persistence.EntityManager
    アプリケーションレベルの EntityManager ハンドルの背後にあるフレームワーク管理リソースとして使用されるネイティブ JPA EntityManager を作成します。
    protected abstract jakarta.persistence.EntityManagerFactory
    サブクラスは、このメソッドを実装して、getObject() メソッドによって返される EntityManagerFactory を作成する必要があります。
    void
    Bean 提供時のシャットダウンで EntityManagerFactory を閉じます。
    アプリケーションの Bean がロードされる ClassLoader を返します。
    バックグラウンドブートストラップの非同期エグゼキューターを返します(ある場合)。
    この EntityManagerFactory が JDBC 接続を取得する JDBC DataSource を返します。
    @Nullable ClassSE<? extends jakarta.persistence.EntityManager>
    このファクトリの EntityManagers が実装する(潜在的にベンダー固有の)EntityManager インターフェースを返します。
    この EntityManagerFactory のベンダー固有の JpaDialect 実装、または不明の場合は null を返します。
    特定のエントリを追加またはオーバーライドするオプションを使用して、JPA プロパティへの Map アクセスを永続性プロバイダーに渡すことを許可します。
    この EntityManagerFactory の JpaVendorAdapter 実装を返します。不明な場合は null を返します。
    jakarta.persistence.EntityManagerFactory
    元の EntityManagerFactory をそのまま返します。
    @Nullable jakarta.persistence.EntityManagerFactory
    シングルトン EntityManagerFactory を返します。
    <S> @Nullable S
    シングルトン EntityManagerFactory または共有 EntityManager プロキシのいずれかを返します。
    ClassSE<? extends jakarta.persistence.EntityManagerFactory>
    この FactoryBean が作成するオブジェクトの型を返します。事前にわからない場合は null を返します。
    @Nullable jakarta.persistence.spi.PersistenceProvider
    基になる EntityManagerFactory の作成に使用された基になる PersistenceProvider を返します。
    @Nullable jakarta.persistence.spi.PersistenceUnitInfo
    コンテナー内 API が使用された場合、この EntityManagerFactory の作成に使用された PersistenceUnitInfo を返します。
    この EntityManagerFactory の作成に使用される永続性ユニットの名前を返します。名前のないデフォルトの場合は null を返します。
    protected void
    postProcessEntityManager(jakarta.persistence.EntityManager rawEntityManager)
    アクティブに使用する前にネイティブ EntityManager を後処理するためのオプションのコールバック。
    void
    Bean class loaderSE を Bean インスタンスに提供するコールバック。
    void
    所有ファクトリを Bean インスタンスに提供するコールバック。
    void
    この Bean を作成した Bean ファクトリで Bean の名前を設定します。
    void
    バックグラウンドブートストラップ用の非同期エグゼキュータ (例: SimpleAsyncTaskExecutor) を指定します。
    void
    setEntityManagerFactoryInterface(ClassSE<? extends jakarta.persistence.EntityManagerFactory> emfInterface)
    この EntityManagerFactory プロキシが実装することになっている(潜在的にベンダー固有の)EntityManagerFactory インターフェースを指定します。
    void
    setEntityManagerInitializer(ConsumerSE<jakarta.persistence.EntityManager> entityManagerInitializer)
    公開された EntityManagerFactory によって作成されたすべての EntityManager をカスタマイズするためのコールバックを指定します。
    void
    setEntityManagerInterface(@Nullable ClassSE<? extends jakarta.persistence.EntityManager> emInterface)
    このファクトリの EntityManagers が実装することになっている(潜在的にベンダー固有の)EntityManager インターフェースを指定します。
    void
    この EntityManagerFactory に関連付けるベンダー固有の JpaDialect 実装を指定します。
    void
    Persistence.createEntityManagerFactory (存在する場合)に渡される JPA プロパティを指定します。
    void
    JPA プロパティをマップとして指定し、Persistence.createEntityManagerFactory (存在する場合)に渡されます。
    void
    必要に応じて、目的の JPA プロバイダーの JpaVendorAdapter 実装を指定します。
    void
    setPersistenceProvider(@Nullable jakarta.persistence.spi.PersistenceProvider persistenceProvider)
    EntityManagerFactory の作成に使用する PersistenceProvider インスタンスを設定します。
    void
    setPersistenceProviderClass(ClassSE<? extends jakarta.persistence.spi.PersistenceProvider> persistenceProviderClass)
    EntityManagerFactory の作成に使用する PersistenceProvider 実装クラスを設定します。
    void
    EntityManagerFactory 構成の名前を指定します。
    boolean
    このファクトリがリクエストされた型をサポートしているかどうかを判断します。
    Spring の PersistenceExceptionTranslationPostProcessor によって自動検出される PersistenceExceptionTranslator インターフェースの実装。
    protected ObjectSE

    クラス ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE

    インターフェース FactoryBean から継承されたメソッド

    isSingleton

    インターフェース SmartFactoryBean から継承されたメソッド

    isEagerInit, isPrototype
  • フィールドの詳細

    • logger

      protected final org.apache.commons.logging.Log logger
      サブクラスで利用可能なロガー。
  • コンストラクターの詳細

    • AbstractEntityManagerFactoryBean

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

    • setPersistenceProviderClass

      public void setPersistenceProviderClass(ClassSE<? extends jakarta.persistence.spi.PersistenceProvider> persistenceProviderClass)
      EntityManagerFactory の作成に使用する PersistenceProvider 実装クラスを設定します。指定されていない場合、永続性プロバイダーは JpaVendorAdapter(存在する場合)から取得されるか、スキャンによって(可能な限り)取得されます。
      関連事項:
    • setPersistenceProvider

      public void setPersistenceProvider(@Nullable jakarta.persistence.spi.PersistenceProvider persistenceProvider)
      EntityManagerFactory の作成に使用する PersistenceProvider インスタンスを設定します。指定しない場合、永続化プロバイダーは JpaVendorAdapter(存在する場合)から取得されるか、永続化ユニットデプロイ記述子によって(可能な限り)決定されます。
      関連事項:
    • getPersistenceProvider

      public @Nullable jakarta.persistence.spi.PersistenceProvider getPersistenceProvider()
      インターフェースからコピーされた説明: EntityManagerFactoryInfo
      基になる EntityManagerFactory の作成に使用された基になる PersistenceProvider を返します。
      次で指定:
      インターフェース EntityManagerFactoryInfogetPersistenceProvider 
      戻り値:
      この EntityManagerFactory の作成に使用された PersistenceProvider、または EntityManagerFactory の構成に標準の JPA プロバイダー自動検出プロセスが使用された場合は null 
    • setPersistenceUnitName

      public void setPersistenceUnitName(@Nullable StringSE persistenceUnitName)
      EntityManagerFactory 構成の名前を指定します。

      デフォルトは none で、デフォルトの EntityManagerFactory 構成を示します。あいまいな EntityManager 構成が見つかった場合、永続性プロバイダーは例外をスローします。

      関連事項:
      • Persistence.createEntityManagerFactory(String)
    • getPersistenceUnitName

      public @Nullable StringSE getPersistenceUnitName()
      インターフェースからコピーされた説明: EntityManagerFactoryInfo
      この EntityManagerFactory の作成に使用される永続性ユニットの名前を返します。名前のないデフォルトの場合は null を返します。

      getPersistenceUnitInfo() が null 以外を返す場合、getPersistenceUnitName() の結果は PersistenceUnitInfo.getPersistenceUnitName() によって返される値と等しくなければなりません。

      次で指定:
      インターフェース EntityManagerFactoryInfogetPersistenceUnitName 
      関連事項:
    • setJpaProperties

      public void setJpaProperties(PropertiesSE jpaProperties)
      Persistence.createEntityManagerFactory (存在する場合)に渡される JPA プロパティを指定します。

      文字列 "value" (PropertiesEditor で解析)または XML Bean 定義の "props" 要素を入力できます。

      関連事項:
      • Persistence.createEntityManagerFactory(String, Map)
      • PersistenceProvider.createContainerEntityManagerFactory(PersistenceUnitInfo, Map)
    • setJpaPropertyMap

      public void setJpaPropertyMap(@Nullable MapSE<StringSE,?> jpaProperties)
      JPA プロパティをマップとして指定し、Persistence.createEntityManagerFactory (存在する場合)に渡されます。

      XML Bean 定義の「マップ」または "props" 要素を取り込むことができます。

      関連事項:
      • Persistence.createEntityManagerFactory(String, Map)
      • PersistenceProvider.createContainerEntityManagerFactory(PersistenceUnitInfo, Map)
    • getJpaPropertyMap

      public MapSE<StringSE,ObjectSE> getJpaPropertyMap()
      特定のエントリを追加またはオーバーライドするオプションを使用して、JPA プロパティへの Map アクセスを永続性プロバイダーに渡すことを許可します。

      jpaPropertyMap[myKey] などを介してエントリを直接指定する場合に便利です。

    • setEntityManagerFactoryInterface

      public void setEntityManagerFactoryInterface(ClassSE<? extends jakarta.persistence.EntityManagerFactory> emfInterface)
      この EntityManagerFactory プロキシが実装することになっている(潜在的にベンダー固有の)EntityManagerFactory インターフェースを指定します。

      デフォルトは、特定の JpaVendorAdapter(存在する場合)から取得されるか、標準の jakarta.persistence.EntityManagerFactory インターフェースに設定されます。

      関連事項:
    • setEntityManagerInterface

      public void setEntityManagerInterface(@Nullable ClassSE<? extends jakarta.persistence.EntityManager> emInterface)
      このファクトリの EntityManagers が実装することになっている(潜在的にベンダー固有の)EntityManager インターフェースを指定します。

      デフォルトは、特定の JpaVendorAdapter(存在する場合)から取得されるか、標準の jakarta.persistence.EntityManager インターフェースに設定されます。

      関連事項:
    • getEntityManagerInterface

      public @Nullable ClassSE<? extends jakarta.persistence.EntityManager> getEntityManagerInterface()
      インターフェースからコピーされた説明: EntityManagerFactoryInfo
      このファクトリの EntityManagers が実装する(潜在的にベンダー固有の)EntityManager インターフェースを返します。

      null の戻り値は、自動検出が行われることが想定されていることを示しています。ターゲット EntityManager インスタンスに基づいているか、単にデフォルトで jakarta.persistence.EntityManager になっています。

      次で指定:
      インターフェース EntityManagerFactoryInfogetEntityManagerInterface 
    • setJpaDialect

      public void setJpaDialect(@Nullable JpaDialect jpaDialect)
      この EntityManagerFactory に関連付けるベンダー固有の JpaDialect 実装を指定します。これは、EntityManagerFactoryInfo インターフェースを介して公開され、JpaDialect 機能を使用することを意図しているアクセサーによってデフォルトのダイアレクトとしてピックアップされます。
      関連事項:
    • getJpaDialect

      public @Nullable JpaDialect getJpaDialect()
      インターフェースからコピーされた説明: EntityManagerFactoryInfo
      この EntityManagerFactory のベンダー固有の JpaDialect 実装、または不明の場合は null を返します。
      次で指定:
      インターフェース EntityManagerFactoryInfogetJpaDialect 
    • setJpaVendorAdapter

      public void setJpaVendorAdapter(@Nullable JpaVendorAdapter jpaVendorAdapter)
      必要に応じて、目的の JPA プロバイダーの JpaVendorAdapter 実装を指定します。これにより、この FactoryBean でローカルにオーバーライドされない限り、永続性プロバイダークラスや JpaDialect など、指定されたプロバイダーの適切なデフォルトが初期化されます。
    • getJpaVendorAdapter

      public @Nullable JpaVendorAdapter getJpaVendorAdapter()
      この EntityManagerFactory の JpaVendorAdapter 実装を返します。不明な場合は null を返します。
    • setEntityManagerInitializer

      public void setEntityManagerInitializer(ConsumerSE<jakarta.persistence.EntityManager> entityManagerInitializer)
      公開された EntityManagerFactory によって作成されたすべての EntityManager をカスタマイズするためのコールバックを指定します。

      これは、JpaVendorAdapter、-level、postProcessEntityManager 実装の代替であり、Hibernate フィルターの設定など、アプリケーションの目的に合わせた便利なカスタマイズを可能にします。

      導入:
      5.3
      関連事項:
    • setBootstrapExecutor

      public void setBootstrapExecutor(@Nullable AsyncTaskExecutor bootstrapExecutor)
      バックグラウンドブートストラップ用の非同期エグゼキュータ (例: SimpleAsyncTaskExecutor) を指定します。

      次に、EntityManagerFactory の初期化がバックグラウンドブートストラップモードに切り替わり、JPA プロバイダーのブートストラップが完了するのを待つのではなく、注入のために EntityManagerFactory プロキシがすぐに返されます。ただし、EntityManagerFactory メソッドへの最初の実際の呼び出しは、JPA プロバイダーのブートストラップが完了するまでブロックされます。最大限のメリットを得るには、メタデータのイントロスペクションの目的であっても、関連する Bean の init メソッドでの初期の EntityManagerFactory 呼び出しを避けてください。

      6.2 以降、コンテキストのリフレッシュが完了する前に JPA の初期化が強制され、それまでに非同期ブートストラップが完了するまで待機します。

      導入:
      4.3
    • getBootstrapExecutor

      public @Nullable AsyncTaskExecutor getBootstrapExecutor()
      バックグラウンドブートストラップの非同期エグゼキューターを返します(ある場合)。
      導入:
      4.3
    • setBeanClassLoader

      public void setBeanClassLoader(ClassLoaderSE classLoader)
      インターフェースからコピーされた説明: BeanClassLoaderAware
      Bean class loaderSE を Bean インスタンスに提供するコールバック。

      通常の Bean プロパティの設定、ただし InitializingBean's InitializingBean.afterPropertiesSet() メソッドやカスタム init-method などの初期化コールバックの前に呼び出さます。

      次で指定:
      インターフェース BeanClassLoaderAwaresetBeanClassLoader 
      パラメーター:
      classLoader - 所有クラスローダー
    • getBeanClassLoader

      public ClassLoaderSE getBeanClassLoader()
      インターフェースからコピーされた説明: EntityManagerFactoryInfo
      アプリケーションの Bean がロードされる ClassLoader を返します。

      この ClassLoader でプロキシが生成されます。

      次で指定:
      インターフェース EntityManagerFactoryInfogetBeanClassLoader 
    • setBeanFactory

      public void setBeanFactory(BeanFactory beanFactory)
      インターフェースからコピーされた説明: BeanFactoryAware
      所有ファクトリを Bean インスタンスに提供するコールバック。

      通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init-method などの初期化コールバックの前に呼び出されます。

      次で指定:
      インターフェース BeanFactoryAwaresetBeanFactory 
      パラメーター:
      beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。
      関連事項:
    • getBeanFactory

      protected @Nullable BeanFactory getBeanFactory()
    • setBeanName

      public void setBeanName(StringSE name)
      インターフェースからコピーされた説明: BeanNameAware
      この Bean を作成した Bean ファクトリで Bean の名前を設定します。

      通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init メソッドなどの init コールバックの前に呼び出されます。

      次で指定:
      インターフェース BeanNameAwaresetBeanName 
      パラメーター:
      name - ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String) メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。
    • getBeanName

      protected @Nullable StringSE getBeanName()
    • afterPropertiesSet

      public void afterPropertiesSet() throws jakarta.persistence.PersistenceException
      インターフェースからコピーされた説明: InitializingBean
      すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。

      このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。

      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
      例外:
      jakarta.persistence.PersistenceException
    • afterSingletonsInstantiated

      public void afterSingletonsInstantiated()
      インターフェースからコピーされた説明: SmartInitializingSingleton
      シングルトン事前インスタンス化フェーズの終わりに呼び出され、すべての通常のシングルトン Bean がすでに作成されていることを保証します。このメソッド内の ListableBeanFactory.getBeansOfType(Class) 呼び出しは、ブートストラップ中に偶発的な副作用を引き起こしません。

      注意 : このコールバックは、BeanFactory ブートストラップ後にオンデマンドで遅延初期化されたシングルトン Bean ではトリガーされず、他の Bean スコープでもトリガーされません。意図されたブートストラップセマンティクスのみを使用する Bean には慎重に使用してください。

      次で指定:
      インターフェース SmartInitializingSingletonafterSingletonsInstantiated 
    • createEntityManagerFactoryProxy

      protected jakarta.persistence.EntityManagerFactory createEntityManagerFactoryProxy(@Nullable jakarta.persistence.EntityManagerFactory emf)
      指定された EntityManagerFactory のプロキシを作成します。これにより、アプリケーション管理の EntityManager に対してトランザクション対応のプロキシを返すことができます。
      パラメーター:
      emf - 永続化プロバイダーによって返された EntityManagerFactory(すでに初期化されている場合)
      戻り値:
      EntityManagerFactory プロキシ
    • createNativeEntityManagerFactory

      protected abstract jakarta.persistence.EntityManagerFactory createNativeEntityManagerFactory() throws jakarta.persistence.PersistenceException
      サブクラスは、このメソッドを実装して、getObject() メソッドによって返される EntityManagerFactory を作成する必要があります。
      戻り値:
      この FactoryBean によって返される EntityManagerFactory インスタンス
      例外:
      jakarta.persistence.PersistenceException - EntityManager を作成できない場合
    • translateExceptionIfPossible

      public @Nullable DataAccessException translateExceptionIfPossible(RuntimeExceptionSE ex)
      Spring の PersistenceExceptionTranslationPostProcessor によって自動検出される PersistenceExceptionTranslator インターフェースの実装。

      可能であれば、ダイアレクトの変換を使用します。そうでない場合、標準の JPA 例外変換にフォールバックします。

      次で指定:
      インターフェース PersistenceExceptionTranslatortranslateExceptionIfPossible 
      パラメーター:
      ex - 変換する RuntimeException
      戻り値:
      対応する DataAccessException (または、例外を変換できなかった場合は null。この場合、実際の永続性の問題ではなく、ユーザーコードが原因である可能性があります。)
      関連事項:
    • getNativeEntityManagerFactory

      public jakarta.persistence.EntityManagerFactory getNativeEntityManagerFactory()
      インターフェースからコピーされた説明: EntityManagerFactoryInfo
      元の EntityManagerFactory をそのまま返します。
      次で指定:
      インターフェース EntityManagerFactoryInfogetNativeEntityManagerFactory 
      戻り値:
      飾り気のない EntityManagerFactory (非 null)
    • createNativeEntityManager

      public jakarta.persistence.EntityManager createNativeEntityManager(@Nullable MapSE<?,?> properties)
      インターフェースからコピーされた説明: EntityManagerFactoryInfo
      アプリケーションレベルの EntityManager ハンドルの背後にあるフレームワーク管理リソースとして使用されるネイティブ JPA EntityManager を作成します。

      これにより、JpaVendorAdapter.postProcessEntityManager(EntityManager) を考慮して、基盤となる native EntityManagerFactory からネイティブ EntityManager が公開されます。

      次で指定:
      インターフェース EntityManagerFactoryInfocreateNativeEntityManager 
      関連事項:
    • postProcessEntityManager

      protected void postProcessEntityManager(jakarta.persistence.EntityManager rawEntityManager)
      アクティブに使用する前にネイティブ EntityManager を後処理するためのオプションのコールバック。

      デフォルトの実装は、利用可能な場合、JpaVendorAdapter.postProcessEntityManager(EntityManager) に委譲します。

      パラメーター:
      rawEntityManager - 後処理する EntityManager
      導入:
      5.3
      関連事項:
    • getPersistenceUnitInfo

      public @Nullable jakarta.persistence.spi.PersistenceUnitInfo getPersistenceUnitInfo()
      インターフェースからコピーされた説明: EntityManagerFactoryInfo
      コンテナー内 API が使用された場合、この EntityManagerFactory の作成に使用された PersistenceUnitInfo を返します。
      次で指定:
      インターフェース EntityManagerFactoryInfogetPersistenceUnitInfo 
      戻り値:
      この EntityManagerFactory の作成に使用された PersistenceUnitInfo、またはコンテナー内契約が EntityManagerFactory の構成に使用されなかった場合は null 
    • getDataSource

      public @Nullable DataSourceSE getDataSource()
      インターフェースからコピーされた説明: EntityManagerFactoryInfo
      この EntityManagerFactory が JDBC 接続を取得する JDBC DataSource を返します。
      次で指定:
      インターフェース EntityManagerFactoryInfogetDataSource 
      戻り値:
      JDBC DataSource、または不明の場合は null 
    • getObject

      public @Nullable jakarta.persistence.EntityManagerFactory getObject()
      シングルトン EntityManagerFactory を返します。
      次で指定:
      インターフェース FactoryBean<jakarta.persistence.EntityManagerFactory>getObject 
      戻り値:
      Bean のインスタンス (null にすることができます)
      関連事項:
    • getObjectType

      public ClassSE<? extends jakarta.persistence.EntityManagerFactory> getObjectType()
      インターフェースからコピーされた説明: FactoryBean
      この FactoryBean が作成するオブジェクトの型を返します。事前にわからない場合は null を返します。

      これにより、たとえばオートワイヤーなどで、オブジェクトをインスタンス化せずに特定の型の Bean を確認できます。

      シングルトンオブジェクトを作成する実装の場合、このメソッドはシングルトンの作成を可能な限り回避し、事前に型を推定する必要があります。プロトタイプの場合は、ここで意味のある型を返すことも推奨されます。

      このメソッドは、この FactoryBean が完全に初期化される前に呼び出すことができます。初期化中に作成された状態に依存しないでください。もちろん、利用可能な場合はそのような状態を引き続き使用できます。

      注意 : オートワイヤーは、ここで null を返す FactoryBeans を単に無視します。FactoryBean の現在の状態を使用して、このメソッドを適切に実装することを強くお勧めします。

      次で指定:
      インターフェース FactoryBean<jakarta.persistence.EntityManagerFactory>getObjectType 
      戻り値:
      この FactoryBean が作成するオブジェクトの型、または呼び出し時に不明な場合は null 
      関連事項:
    • getObject

      public <S> @Nullable S getObject(ClassSE<S> type) throws ExceptionSE
      シングルトン EntityManagerFactory または共有 EntityManager プロキシのいずれかを返します。
      次で指定:
      インターフェース SmartFactoryBean<jakarta.persistence.EntityManagerFactory>getObject 
      パラメーター:
      type - リクエストされた型
      戻り値:
      このファクトリによって管理される対応するインスタンス、または利用できない場合は null 
      例外:
      ExceptionSE - 作成エラーの場合
      関連事項:
    • supportsType

      public boolean supportsType(ClassSE<?> type)
      インターフェースからコピーされた説明: SmartFactoryBean
      このファクトリがリクエストされた型をサポートしているかどうかを判断します。

      デフォルトでは、FactoryBean.getObjectType() で示されるように、ファクトリによって公開されるプライマリ型をサポートします。特定のファクトリでは、依存性注入のために追加の型をサポートする場合があります。

      次で指定:
      インターフェース SmartFactoryBean<jakarta.persistence.EntityManagerFactory>supportsType 
      パラメーター:
      type - リクエストされた型
      戻り値:
      SmartFactoryBean.getObject(Class) が対応するインスタンスを返すことができる場合は true、そうでない場合は false 
      関連事項:
    • destroy

      public void destroy()
      Bean 提供時のシャットダウンで EntityManagerFactory を閉じます。
      次で指定:
      インターフェース DisposableBeandestroy 
    • writeReplace

      protected ObjectSE writeReplace() throws ObjectStreamExceptionSE
      例外:
      ObjectStreamExceptionSE