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