Grails/GORM ドメイン オブジェクトをセッションに保存する - なぜしないのですか?

StackOverflow https://stackoverflow.com/questions/522295

  •  22-08-2019
  •  | 
  •  

質問

私は Grails/GORM を学んでいますが、理解しているように、現在のベスト プラクティスはセッションにドメイン オブジェクトを保存しないことです (「 http://jira.codehaus.org/browse/GRAILS-978 修正の可能性があるため)。

回避策は簡単です。ドメイン オブジェクトの参照 ID をセッションに保存し、次のリクエストで使用してオブジェクトを再取得するだけです。

私の質問は次のとおりです。ドメイン オブジェクトをセッションに安全に保存できないのはなぜですか?私はその背後にある技術的なことを理解しようとしています。

ありがとう!

役に立ちましたか?

解決

これに関する私の懸念の 1 つは、GORM (Hibernate だと思います) がリクエストごとに open-session-in-view パターンを使用し、動作中の Hibernate のセッションが閉じられ、セッションの最後にフラッシュされることです。

GORM オブジェクトを HTTP セッションに保存するということは、オブジェクトを前の Hibernate セッションから切り離し、新しく作成されたセッションに再接続することを意味します。これにより、オブジェクトの 2 つのバージョン間で競合が発生する可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top