public class OpenEntityManagerInViewInterceptor extends EntityManagerFactoryAccessor implements AsyncWebRequestInterceptor
このインターセプターは、現在のスレッドを介して JPA EntityManagers を使用可能にし、トランザクションマネージャーによって自動検出されます。JpaTransactionManager
または JtaTransactionManager
を介したサービス層トランザクション、および非トランザクションの読み取り専用実行に適しています。
OpenEntityManagerInViewFilter
とは対照的に、このインターセプターは Spring アプリケーションコンテキストでセットアップされるため、Bean 接続を利用できます。
OpenEntityManagerInViewFilter
, JpaTransactionManager
, SharedEntityManagerCreator
, TransactionSynchronizationManager
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | PARTICIPATE_SUFFIX 「既存のエンティティマネージャーの処理に参加する」リクエスト属性の EntityManagerFactory toString 表現に追加されるサフィックス。 |
logger
コンストラクターと説明 |
---|
OpenEntityManagerInViewInterceptor() |
修飾子と型 | メソッドと説明 |
---|---|
void | afterCompletion(WebRequest request, ExceptionSE ex) リクエスト処理の補完後、つまりビューのレンダリング後のコールバック。 |
void | afterConcurrentHandlingStarted(WebRequest request) ハンドラーがリクエストを同時に処理し始めたときに、 postHandle および afterCompletion の代わりに呼び出されます。 |
protected StringSE | getParticipateAttributeName() リクエストがすでにフィルタリングされていることを識別するリクエスト属性の名前を返します。 |
void | postHandle(WebRequest request, ModelMap model) 呼び出しが成功した後、ビューのレンダリングの前に(もしあれば)リクエストハンドラーの実行をインターセプトします。 |
void | preHandle(WebRequest request) 呼び出しの前にリクエストハンドラーの実行をインターセプトします。 |
createEntityManager, getEntityManagerFactory, getJpaPropertyMap, getPersistenceUnitName, getTransactionalEntityManager, obtainEntityManagerFactory, setBeanFactory, setEntityManagerFactory, setJpaProperties, setJpaPropertyMap, setPersistenceUnitName
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public static final StringSE PARTICIPATE_SUFFIX
public void preHandle(WebRequest request) throws DataAccessException
WebRequestInterceptor
コンテキストリソース(Hibernate セッションなど)を準備し、リクエスト属性またはスレッドローカルオブジェクトとして公開できます。
WebRequestInterceptor
の preHandle
request
- 現在の Web リクエスト DataAccessException
public void postHandle(WebRequest request, @Nullable ModelMap model)
WebRequestInterceptor
ハンドラーの実行が成功した後にコンテキストリソースを変更することができます(たとえば、Hibernate セッションのフラッシュ)。
WebRequestInterceptor
の postHandle
request
- 現在の Web リクエスト model
- ビューに公開されるモデルオブジェクトのマップ(null
の場合があります)。必要に応じて、公開されたモデルの分析やモデル属性の追加に使用できます。public void afterCompletion(WebRequest request, @Nullable ExceptionSE ex) throws DataAccessException
WebRequestInterceptor
メモ: このインターセプターの preHandle
メソッドが正常に完了した場合にのみ呼び出されます!
WebRequestInterceptor
の afterCompletion
request
- 現在の Web リクエスト ex
- ハンドラーの実行時にスローされる例外(ある場合)DataAccessException
public void afterConcurrentHandlingStarted(WebRequest request)
AsyncWebRequestInterceptor
postHandle
および afterCompletion
の代わりに呼び出されます。AsyncWebRequestInterceptor
の afterConcurrentHandlingStarted
request
- 現在のリクエスト protected StringSE getParticipateAttributeName()
PARTICIPATE_SUFFIX