クラス LocalEntityManagerFactoryBean
- 実装されているすべてのインターフェース:
SerializableSE, Aware, BeanClassLoaderAware, BeanFactoryAware, BeanNameAware, DisposableBean, FactoryBean<jakarta.persistence.EntityManagerFactory>, InitializingBean, SmartFactoryBean<jakarta.persistence.EntityManagerFactory>, SmartInitializingSingleton, ResourceLoaderAware, PersistenceExceptionTranslator, EntityManagerFactoryInfo
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
- 関連事項:
フィールドのサマリー
クラス AbstractEntityManagerFactoryBean から継承されたフィールド
loggerインターフェース FactoryBean から継承されたフィールド
OBJECT_TYPE_ATTRIBUTEコンストラクターの概要
コンストラクターコンストラクター説明LocalEntityManagerFactoryBeanを作成します。LocalEntityManagerFactoryBean(jakarta.persistence.PersistenceConfiguration configuration) 指定された永続性ユニットのLocalEntityManagerFactoryBeanを作成します。LocalEntityManagerFactoryBean(StringSE persistenceUnitName) 指定された永続性ユニットのLocalEntityManagerFactoryBeanを作成します。方法の概要
修飾子と型メソッド説明protected jakarta.persistence.EntityManagerFactory指定された構成の EntityManagerFactory を初期化します。存在する場合は、"jakarta.persistence.dataSource" プロパティから JDBC DataSource を公開します。jakarta.persistence.PersistenceConfigurationEntityManagerFactory の作成に使用するローカル JPA 3.2PersistenceConfigurationを設定します。voidsetDataSource(@Nullable DataSourceSE dataSource) JPA 永続性プロバイダーがデータベースへのアクセスに使用することになっている JDBC DataSource を指定します。voidsetPackagesToScan(StringSE... packagesToScan) persistence.xmlマーカーを含む jar ファイルの JPA の標準スキャンを使用する代わりに、クラスパスのエンティティクラスに Spring ベースのスキャンを使用するかどうかを設定します。voidsetPersistenceConfiguration(jakarta.persistence.PersistenceConfiguration configuration) EntityManagerFactory の作成に使用するローカル JPA 3.2PersistenceConfigurationを設定します。voidsetPersistenceUnitName(@Nullable StringSE persistenceUnitName) 使用する永続性ユニット構成の名前を指定します。voidsetResourceLoader(ResourceLoader resourceLoader) このオブジェクトが実行される ResourceLoader を設定します。クラス AbstractEntityManagerFactoryBean から継承されたメソッド
afterPropertiesSet, afterSingletonsInstantiated, createEntityManagerFactoryProxy, createNativeEntityManager, destroy, getBeanClassLoader, getBeanFactory, getBeanName, getBootstrapExecutor, getEntityManagerInterface, getJpaDialect, getJpaPropertyMap, getJpaVendorAdapter, getNativeEntityManagerFactory, getObject, getObject, getObjectType, getPersistenceProvider, getPersistenceUnitInfo, getPersistenceUnitName, postProcessEntityManager, setBeanClassLoader, setBeanFactory, setBeanName, setBootstrapExecutor, setEntityManagerFactoryInterface, setEntityManagerInitializer, setEntityManagerInterface, setJpaDialect, setJpaProperties, setJpaPropertyMap, setJpaVendorAdapter, setPersistenceProvider, setPersistenceProviderClass, supportsType, translateExceptionIfPossible, writeReplaceクラス ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース FactoryBean から継承されたメソッド
isSingletonインターフェース SmartFactoryBean から継承されたメソッド
isEagerInit, isPrototype
コンストラクターの詳細
LocalEntityManagerFactoryBean
public LocalEntityManagerFactoryBean()LocalEntityManagerFactoryBeanを作成します。7.0 以降、デフォルトの永続ユニット名には "default" が使用されます。
- 関連事項:
LocalEntityManagerFactoryBean
指定された永続性ユニットの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.2PersistenceConfigurationを設定します。これは、persistence.xml(プロバイダ固有のクラスパススキャンを含む)を置き換える、完全なプログラムによる永続ユニット設定を公開する、HibernatePersistenceConfigurationなどのプロバイダ固有のサブクラスにすることができます。メモ:
PersistenceConfigurationには永続ユニット名が含まれているため、実質的にsetPersistenceUnitName(String)メソッドをオーバーライドします。一方、ローカルに指定された JPA プロパティ (AbstractEntityManagerFactoryBean.setJpaProperties(Properties)) は、指定されたPersistenceConfigurationインスタンスにマージされます。- 導入:
- 7.0
- 関連事項:
getPersistenceConfiguration
public jakarta.persistence.PersistenceConfiguration getPersistenceConfiguration()EntityManagerFactory の作成に使用するローカル JPA 3.2PersistenceConfigurationを設定します。まだ使用されていない場合は、設定された永続ユニット名に対応する新しいプレーンPersistenceConfigurationが作成され、返されます。- 導入:
- 7.0
- 関連事項:
setPersistenceUnitName
使用する永続性ユニット構成の名前を指定します。指定された永続性ユニット名を、
getPersistenceConfiguration()によって構築されたローカル永続性ユニットの名前として使用します(該当する場合)。そうでない場合は、利用可能な永続性ユニットの中から選択します。メモ: この setter メソッドは、代わりに指定された
PersistenceConfigurationインスタンスから永続ユニット名を導出するsetPersistenceConfiguration(PersistenceConfiguration)と組み合わせて使用することを意図したものではありません。- オーバーライド:
- クラス
AbstractEntityManagerFactoryBeanのsetPersistenceUnitName - 関連事項:
setPackagesToScan
persistence.xmlマーカーが含まれている jar ファイルの JPA の標準スキャンを使用する代わりに、クラスパスのエンティティクラスに対して Spring ベースのスキャンを使用するかどうかを設定します。Spring ベースのスキャンの場合、persistence.xmlは必要ありません。ここで検索するベースパッケージを指定するだけです。デフォルトはなしです。クラスパスでエンティティクラスの自動検出を検索するパッケージを指定します。これは、Spring のコンポーネントスキャン機能(
ClassPathBeanDefinitionScanner)に類似しています。この setter を使用すると、この
LocalEntityManagerFactoryBeanはPersistenceConfigurationに切り替わり、persistence.xmlの読み取りやプロバイダ駆動スキャンは行われなくなります。ローカルのPersistenceConfigurationには、getPersistenceConfiguration()を介してさらに JPA 設定を適用できます。- 導入:
- 7.0.4
- 関連事項:
setDataSource
JPA 永続プロバイダーがデータベースへのアクセスに使用する JDBC DataSource を指定します。これは、JDBC 設定をpersistence.xmlに保持し、代わりに "jakarta.persistence.dataSource" プロパティを通じて Spring 管理の DataSource を渡すことの代替手段です。ここで設定すると、JPA トランザクションを JDBC アクセサーに公開するために、JDBC DataSource も
JpaTransactionManagerによって自動検出されます。- 導入:
- 6.2
- 関連事項:
getDataSource
存在する場合は、"jakarta.persistence.dataSource" プロパティから JDBC DataSource を公開します。- 次で指定:
- インターフェース
EntityManagerFactoryInfoのgetDataSource - オーバーライド:
- クラス
AbstractEntityManagerFactoryBeanのgetDataSource - 戻り値:
- JDBC DataSource、または不明の場合は
null - 導入:
- 6.2
- 関連事項:
setResourceLoader
インターフェースからコピーされた説明:ResourceLoaderAwareこのオブジェクトが実行される ResourceLoader を設定します。これは ResourcePatternResolver であり、
instanceof ResourcePatternResolverで確認できます。ResourcePatternUtils.getResourcePatternResolverメソッドも参照してください。通常の Bean プロパティの設定後、InitializingBean の
afterPropertiesSetまたはカスタム init メソッドのような初期コールバックの前に呼び出されます。ApplicationContextAware のsetApplicationContextの前に呼び出されます。- 次で指定:
- インターフェース
ResourceLoaderAwareのsetResourceLoader - パラメーター:
resourceLoader- このオブジェクトによって使用される ResourceLoader オブジェクト- 関連事項:
createNativeEntityManagerFactory
protected jakarta.persistence.EntityManagerFactory createNativeEntityManagerFactory() throws jakarta.persistence.PersistenceException指定された構成の EntityManagerFactory を初期化します。- 次で指定:
- クラス
AbstractEntityManagerFactoryBeanのcreateNativeEntityManagerFactory - 戻り値:
- この FactoryBean によって返される EntityManagerFactory インスタンス
- 例外:
jakarta.persistence.PersistenceException- JPA 初期化エラーの場合