Grails/GORM ドメイン オブジェクトをセッションに保存する - なぜしないのですか?
質問
私は Grails/GORM を学んでいますが、理解しているように、現在のベスト プラクティスはセッションにドメイン オブジェクトを保存しないことです (「 http://jira.codehaus.org/browse/GRAILS-978 修正の可能性があるため)。
回避策は簡単です。ドメイン オブジェクトの参照 ID をセッションに保存し、次のリクエストで使用してオブジェクトを再取得するだけです。
私の質問は次のとおりです。ドメイン オブジェクトをセッションに安全に保存できないのはなぜですか?私はその背後にある技術的なことを理解しようとしています。
ありがとう!
解決
これに関する私の懸念の 1 つは、GORM (Hibernate だと思います) がリクエストごとに open-session-in-view パターンを使用し、動作中の Hibernate のセッションが閉じられ、セッションの最後にフラッシュされることです。
GORM オブジェクトを HTTP セッションに保存するということは、オブジェクトを前の Hibernate セッションから切り離し、新しく作成されたセッションに再接続することを意味します。これにより、オブジェクトの 2 つのバージョン間で競合が発生する可能性があります。
所属していません StackOverflow