Jdo / Hibernate中的分离对象 - 无论如何它们是什么?

时间:2009-05-20 14:49:52

标签: hibernate orm jpa jdo

有人可以向我解释在Web应用程序的上下文中使用分离对象的优点是什么? AFAIK只有在对象以某种方式比交易的“词汇”范围更长时才有用,但通常在交易结束时在Web应用程序中,只需将对象发送到视图层,它们就不会被重新附加。

据我所知,分离一个对象只有在你以后要合并/重新附加它时才有用,而我没有看到这只是简单地直接更新对象的优点。 DB。

赞赏任何示例代码。

编辑:为了澄清,我试图理解分离对象与瞬态的优点(例如,为数据库提供但不能在以后重新连接)。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

假设您有一个页面,其中包含从各种表中的行填充的数十个下拉列表。每次渲染页面时,您都不希望必须遍历数据库,因此您可以获取对象列表,分离它们并将它们存储在某处。只要你注意避免引用可能延迟加载的属性,你就可以了。