42

Spring FrameworkのLocalContainerEntityManagerFactoryBeanLocalEntityManagerFactoryBeanの違いを誰かが説明できますか?

4

8 に答える 8

42

基本的に、 JPA 仕様では2 種類のエンティティ マネージャが定義されています。

i) アプリケーション管理:アプリケーション管理のエンティティ マネージャは、「エンティティ マネージャはアプリケーション (つまり、コード) だけで作成および管理される」ことを意味します。

ii) コンテナ管理:コンテナ管理エンティティ マネージャとは、「エンティティ マネージャが単に J2EE コンテナによって作成および管理されることを意味します (つまり、コードが直接管理するのではなく、エンティティ マネージャはコンテナによって作成および管理され、コードは次のような方法で EM を取得します)。 JNDI を使用)。

注 : 作成および管理 (上記) とは、「エンティティ マネージャーの開始、終了、およびトランザクションへの関与」を意味します。

LocalContainerEntityManagerFactoryBean - コンテナー管理
LocalEntityManagerFactoryBean - アプリケーション管理

大きな注意:スプリング ベースのアプリケーションの場合、違いはそれほど大きくありませんSpring は役割のみを果たします( LocalContainerEntityManagerFactoryBeanを構成する場合はコンテナーとして、 LocalEntityManagerFactoryBeanを構成する場合はアプリケーションとして)

于 2014-03-18T06:17:49.170 に答える
18

ドキュメントはそれをすべて言います:

LocalContainerEntityManagerFactoryBean -- リンクから: JPA の標準コンテナーブートストラップ コントラクトに従って JPA EntityManagerFactory を作成する FactoryBean 。

LocalEntityManagerFactoryBean -- リンクから: JPA の標準スタンドアロンブートストラップ コントラクトに従って JPA EntityManagerFactory を作成する FactoryBean 。

基本的に、唯一の違いは JPA の作成方法EntityManagerFactoryです。

于 2011-05-27T20:24:23.097 に答える
17

LocalEntityManagerFactoryBean

が最も単純で、最も制限されています。既存の JDBC DataSource Bean 定義を参照することはできず、グローバル トランザクションはサポートされていません。

LocalContainerEntityManagerFactoryBean

最も強力な JPA セットアップ オプションであり、アプリケーション内で柔軟なローカル構成を可能にします。既存の JDBC DataSource へのリンクをサポートし、ローカル トランザクションとグローバル トランザクションの両方をサポートします。

参照: spring-framework-reference.pdf 「Spring 3」

于 2011-10-23T14:49:46.447 に答える
11

LocalEntityManagerFactoryBean は、アプリケーション管理の EntityManagerFactory を生成します。

LocalContainerEntityManagerFactoryBean は、コンテナー管理の EntityManagerFactory を生成します。

参照 : Spring In Action - Craig Walls

于 2011-10-23T20:23:11.407 に答える