在Hibernate中更新持久化对象

7

我需要更新一个对象。我先获取它。这个对象是一个持久化对象。那现在..如果我改变了任何属性,因为它是一个持久化(非分离)对象,任何变化会立即保存吗?我需要调用一个函数吗?还是当会话被刷新时,修改就会被存储?


我不明白问题出在哪里... - tkt986
2个回答

6

如果它是一个持久对象,当会话被刷新时更改将被保存。


好的。这意味着当我的struts2动作修改属性时,在返回SUCCESS之前,必须刷新会话。但是,如果会话由Spring bean管理,如何告诉它刷新? - Luis C.
@luigi,会话在关闭之前会自动刷新。如果您已经配置了整个请求期间保持会话打开,则会在操作返回后刷新。一旦获取到会话,您可以使用session.flush()显式地刷新。 - hvgotcodes
https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/objectstate.html#objectstate-modifying - Sanghyun Lee

0
关于Chris的回答,以及后续问题“如何配置会话在请求后关闭”:传统的做法是将相关的servlet(假设这是一个Web应用程序)包装在一个过滤器中,在其中打开一个会话并将其与当前线程关联,调用doFilter,然后根据是否发生错误提交或回滚事务。这被称为“视图中打开会话”模式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接