私の質問は、Grails の休止状態のセッション スコープに関するものです。
- セッションは春のトランザクションにバインドされていますか?
- 新しいリクエストが作成されるたびに新しいセッションが作成されますか?
- または、セッションはスレッドにバインドされていますか?
これは説明できますか?
ありがとう
私の質問は、Grails の休止状態のセッション スコープに関するものです。
これは説明できますか?
ありがとう
アクティブPlatformTransactionManager
はHibernateTransactionManager
. ただし、コントローラのリクエストはトランザクションで実行されないことに注意してください。サービスのみが自動的にトランザクションになります。データベースに書き込むコントローラーをリファクタリングして、サービスを使用してその作業を実行し、適切にトランザクション処理できるようにする必要があります。
リクエストごとに新しいセッションが作成され、 によってスレッドにバインドされますGrailsOpenSessionInViewInterceptor
。これにより、遅延読み込みの例外やその他の問題を回避できます。セッションは、スレッドの最後でフラッシュされ、閉じられます。
興味のある方ThreadLocal
はTransactionSynchronizationManager
どうぞ。TransactionSynchronizationManager.getResource(sessionFactory)
(を使用def sessionFactory
して へのアクセスを取得SessionFactory
) を呼び出しSessionHolder
て、セッションを保持している にアクセスできます。