【问题标题】:Detached Objects in Jdo/Hibernate - What are they for anyway?Jdo/Hibernate 中的分离对象——它们到底有什么用?
【发布时间】:2009-05-20 14:49:52
【问题描述】:

有人可以向我解释在 Web 应用程序的上下文中使用分离对象有什么好处吗? AFAIK 它们仅在对象以某种方式超出事务的“词汇”范围时才有用,但通常在 Web 应用程序中,当您的事务结束时,您只需将对象发送到视图层,它们就不会被重新附加。

据我所知,分离对象仅在您稍后要合并/重新附加它时才有用,而且我看不到这样做的好处,只是简单地直接更新对象数据库。

欢迎提供任何示例代码。

编辑:为澄清起见,我试图了解分离对象与瞬态对象的优势(例如,用于数据库但以后无法重新附加的对象)。

【问题讨论】:

    标签: hibernate orm jpa jdo


    【解决方案1】:

    分离的对象还可以保存其版本号(如果您有版本控制列)。如果您采用实体编辑器的方法,例如,加载实体并将其存储在 http-session(或其他寿命较长的存储)中,然后在以后的交互中更新它并将其合并回不同的会话, 然后 Hibernate 可以自动检查该实体(或合并对象图中的其他实体)没有被同时修改。

    【讨论】:

      【解决方案2】:

      假设您有一个包含几十个下拉列表的页面,这些下拉列表是从各个表的行中填充的。您不希望每次呈现页面时都必须往返于数据库,因此您可以获取对象列表、分离它们并将它们存储在某个地方。只要您注意避免引用可能会延迟加载的属性就可以了。

      【讨论】:

      • 但是这样我的对象可能会过时。此外,我试图了解使用分离与瞬态的区别。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 1970-01-01
      相关资源
      最近更新 更多