【问题标题】:Storing Grails/GORM domain objects in the session - why not?在会话中存储 Grails/GORM 域对象 - 为什么不呢?
【发布时间】:2009-02-06 21:39:40
【问题描述】:

我正在学习 Grails/GORM,据我了解,当前的最佳做法是不在会话中存储域对象(请参阅 http://jira.codehaus.org/browse/GRAILS-978 了解潜在的修复方法)。

解决方法很简单;只需将域对象的引用 id 存储在会话中,然后在下一个请求中使用重新检索对象。

我的问题是:为什么域对象不能安全地存储在会话中?我正在尝试了解其背后的技术细节。

谢谢!

【问题讨论】:

    标签: hibernate grails grails-orm


    【解决方案1】:

    我对此的担忧之一是 GORM(我会说 Hibernate)对每个请求都使用 open-session-in-view 模式,在这种模式下,正在工作的 Hibernate 的会话将在结束时关闭并刷新。

    在 HTTP 会话中存储 GORM 对象意味着将对象从之前的 Hibernate 会话中分离出来,并将其重新附加到新创建的会话中。这可能会导致对象的两个版本之间发生冲突。

    【讨论】:

    • 这也可能导致您的数据库连接出现问题。当我们在 http 会话中存储域类超过 8 小时时,我们亲眼目睹了这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2017-04-21
    • 2017-08-25
    相关资源
    最近更新 更多