クラス LocalEntityManagerFactoryBean

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

public class LocalEntityManagerFactoryBean extends AbstractEntityManagerFactoryBean implements ResourceLoaderAware
JPA 標準のスタンドアロンブートストラップ・契約に従って JPA EntityManagerFactory を作成する FactoryBean。これは、Spring アプリケーションコンテキストで共有 JPA EntityManagerFactory を設定する最も簡単な方法です。EntityManagerFactory は、依存性注入を介して JPA ベースの DAO に渡すことができます。JNDI ルックアップへの切り替え、または JPA コンテナー・契約に基づく LocalContainerEntityManagerFactoryBean 定義への切り替えは、設定の問題です。

構成設定は通常、JPA スタンドアロンブートストラップ契約に従って、クラスパスにある META-INF/persistence.xml 構成ファイルから読み取られます。セットアップの詳細については、Java Persistence API 仕様と永続プロバイダーのドキュメントを参照してください。さらに、AbstractEntityManagerFactoryBean.setJpaProperties(Properties)/AbstractEntityManagerFactoryBean.setJpaPropertyMap(Map) を介して JPA プロパティをこの FactoryBean に追加することもできます。

注意 : この FactoryBean は、JPA プロバイダーに渡すことができる構成に関して制限された構成機能を持っています。より柔軟な構成オプションが必要な場合は、代わりに Spring のより強力な LocalContainerEntityManagerFactoryBean の使用を検討してください。

導入:
2.0
作成者:
Juergen Hoeller, Rod Johnson
関連事項:
  • コンストラクターの詳細

    • LocalEntityManagerFactoryBean

      public LocalEntityManagerFactoryBean()
      LocalEntityManagerFactoryBean を作成します。

      7.0 以降、デフォルトの永続ユニット名には "default" が使用されます。

      関連事項:
    • LocalEntityManagerFactoryBean

      public LocalEntityManagerFactoryBean(StringSE persistenceUnitName)
      指定された永続性ユニットの LocalEntityManagerFactoryBean を作成します。
      パラメーター:
      persistenceUnitName - 永続性ユニットの名前
      導入:
      7.0
    • LocalEntityManagerFactoryBean

      public LocalEntityManagerFactoryBean(jakarta.persistence.PersistenceConfiguration configuration)
      指定された永続性ユニットの LocalEntityManagerFactoryBean を作成します。
      パラメーター:
      configuration - 永続ユニットの構成
      導入:
      7.0
  • メソッドの詳細

    • setPersistenceConfiguration

      public void setPersistenceConfiguration(jakarta.persistence.PersistenceConfiguration configuration)
      EntityManagerFactory の作成に使用するローカル JPA 3.2 PersistenceConfiguration を設定します。これは、persistence.xml (プロバイダ固有のクラスパススキャンを含む)を置き換える、完全なプログラムによる永続ユニット設定を公開する、HibernatePersistenceConfiguration などのプロバイダ固有のサブクラスにすることができます。

      メモ: PersistenceConfiguration には永続ユニット名が含まれているため、実質的に setPersistenceUnitName(String) メソッドをオーバーライドします。一方、ローカルに指定された JPA プロパティ ( AbstractEntityManagerFactoryBean.setJpaProperties(Properties) ) は、指定された PersistenceConfiguration インスタンスにマージされます。

      導入:
      7.0
      関連事項:
    • getPersistenceConfiguration

      public jakarta.persistence.PersistenceConfiguration getPersistenceConfiguration()
      EntityManagerFactory の作成に使用するローカル JPA 3.2 PersistenceConfiguration を設定します。まだ使用されていない場合は、設定された永続ユニット名に対応する新しいプレーン PersistenceConfiguration が作成され、返されます。
      導入:
      7.0
      関連事項:
    • setPersistenceUnitName

      public void setPersistenceUnitName(@Nullable StringSE persistenceUnitName)
      使用する永続性ユニット構成の名前を指定します。

      指定された永続性ユニット名を、getPersistenceConfiguration() によって構築されたローカル永続性ユニットの名前として使用します(該当する場合)。そうでない場合は、利用可能な永続性ユニットの中から選択します。

      メモ: この setter メソッドは、代わりに指定された PersistenceConfiguration インスタンスから永続ユニット名を導出する setPersistenceConfiguration(PersistenceConfiguration) と組み合わせて使用することを意図したものではありません。

      オーバーライド:
      クラス AbstractEntityManagerFactoryBeansetPersistenceUnitName 
      関連事項:
    • setPackagesToScan

      public void setPackagesToScan(StringSE... packagesToScan)
      persistence.xml マーカーが含まれている jar ファイルの JPA の標準スキャンを使用する代わりに、クラスパスのエンティティクラスに対して Spring ベースのスキャンを使用するかどうかを設定します。Spring ベースのスキャンの場合、persistence.xml は必要ありません。ここで検索するベースパッケージを指定するだけです。

      デフォルトはなしです。クラスパスでエンティティクラスの自動検出を検索するパッケージを指定します。これは、Spring のコンポーネントスキャン機能(ClassPathBeanDefinitionScanner)に類似しています。

      この setter を使用すると、この LocalEntityManagerFactoryBean は PersistenceConfiguration に切り替わり、persistence.xml の読み取りやプロバイダ駆動スキャンは行われなくなります。ローカルの PersistenceConfiguration には、getPersistenceConfiguration() を介してさらに JPA 設定を適用できます。

      導入:
      7.0.4
      関連事項:
    • setDataSource

      public void setDataSource(@Nullable DataSourceSE dataSource)
      JPA 永続プロバイダーがデータベースへのアクセスに使用する JDBC DataSource を指定します。これは、JDBC 設定を persistence.xml に保持し、代わりに "jakarta.persistence.dataSource" プロパティを通じて Spring 管理の DataSource を渡すことの代替手段です。

      ここで設定すると、JPA トランザクションを JDBC アクセサーに公開するために、JDBC DataSource も JpaTransactionManager によって自動検出されます。

      導入:
      6.2
      関連事項:
    • getDataSource

      public @Nullable DataSourceSE getDataSource()
      存在する場合は、"jakarta.persistence.dataSource" プロパティから JDBC DataSource を公開します。
      次で指定:
      インターフェース EntityManagerFactoryInfogetDataSource 
      オーバーライド:
      クラス AbstractEntityManagerFactoryBeangetDataSource 
      戻り値:
      JDBC DataSource、または不明の場合は null 
      導入:
      6.2
      関連事項:
    • setResourceLoader

      public void setResourceLoader(ResourceLoader resourceLoader)
      インターフェースからコピーされた説明: ResourceLoaderAware
      このオブジェクトが実行される ResourceLoader を設定します。

      これは ResourcePatternResolver であり、instanceof ResourcePatternResolver で確認できます。ResourcePatternUtils.getResourcePatternResolver メソッドも参照してください。

      通常の Bean プロパティの設定後、InitializingBean の afterPropertiesSet またはカスタム init メソッドのような初期コールバックの前に呼び出されます。ApplicationContextAware の setApplicationContext の前に呼び出されます。

      次で指定:
      インターフェース ResourceLoaderAwaresetResourceLoader 
      パラメーター:
      resourceLoader - このオブジェクトによって使用される ResourceLoader オブジェクト
      関連事項:
    • createNativeEntityManagerFactory

      protected jakarta.persistence.EntityManagerFactory createNativeEntityManagerFactory() throws jakarta.persistence.PersistenceException
      指定された構成の EntityManagerFactory を初期化します。
      次で指定:
      クラス AbstractEntityManagerFactoryBeancreateNativeEntityManagerFactory 
      戻り値:
      この FactoryBean によって返される EntityManagerFactory インスタンス
      例外:
      jakarta.persistence.PersistenceException - JPA 初期化エラーの場合