4

私は Grails/GORM を学習していますが、現在のベスト プラクティスは、ドメイン オブジェクトをセッションに保存しないことです (潜在的な修正については、 http://jira.codehaus.org/browse/GRAILS-978を参照してください)。

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

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

ありがとう!

4

1 に答える 1

12

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

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

于 2009-02-06T22:44:31.303 に答える