3

@Stateful EJB は、同じ EntityManager を複数のトランザクションで再利用するために PersistenceContextType.EXTENDED を使用できます。これは、会話型スコープの実装に役立ちます。Spring はこれをサポートしていますか?

4

3 に答える 3

0

これについては、プレーンな JPA に基づく DAOの実装 に短い説明があります。

@PersistenceContextアノテーションにはオプションの属性タイプがあり、デフォルトは ですPersistenceContextType.TRANSACTIONEntityManagerこのデフォルトは、共有プロキシを受け取るために必要なものです。代替手段 PersistenceContextType.EXTENDEDはまったく別の問題です。これにより、いわゆる extended が生成され EntityManagerます。これはスレッドセーフではないため、Spring 管理のシングルトン Bean などの同時アクセス コンポーネントで使用してはなりません。ExtendedEntityManagersは、たとえばセッションに常駐するステートフル コンポーネントでのみ使用することを想定しており、そのライフサイクルはEntityManager現在のトランザクションに関連付けられているのではなく、完全にアプリケーション次第です。

いいえ、Spring がそれらをサポートしているようには思えません。

于 2011-02-23T12:45:53.340 に答える
0

はい、Spring はそれをサポートしています。たとえば、PersistenceContextType EXTENDED を使用した PersistenceContext の注入を参照してください。

于 2011-02-23T13:02:52.793 に答える