3

OpenSessionInViewFilterSpring の Hibernateと AOP バージョンを使用するプロジェクトに取り組んでいます– OpenSessionInterceptor. AOP インターセプターは、Quartz ジョブ用に構成されており、ジョブの実行中も Web リクエスト中と同じ利便性を提供します。

現在、このプロジェクトをネイティブ Spring / Hibernate ORM から、Hibernate をプロバイダーとして使用する Spring JPA に移行しています。Spring ORMがOpenEntityManagerInViewFilter提供するもの (基本的にセッション フィルターと同じことを行います) はありますが、ないOpenEntityManagerInterceptorか、似たようなものはありません。ここで何が最善のアプローチであるかを理解できないので、質問は次のとおりです。

独自のインターセプターを作成したり、SharedEntityManagerクラスをいじったりする必要がありますか、それとも別の方法がありますか?

注: プロジェクトは現在、Spring 4.0、JPA 2.1、および Hibernate 4.3 でビルドされています。

4

1 に答える 1

3

JavaDoc が示唆OpenEntityManagerInViewInterceptorするように、Spring には があります。のスコープがリクエストにバインドされない場合、通常のアプローチは、アノテーションを取得する粗粒度のコンポーネントを構築することです。これにより、トランザクションのスコープに「バインド」されます。EntityManager@TransactionalEntityManager

于 2014-07-31T11:32:57.317 に答える