黑马程序员技术交流社区

标题: Hibernate 中的 update()和 saveOrUpdate()的区别? [打印本页]

作者: 黑马-zhangping    时间: 2012-10-20 19:55
标题: Hibernate 中的 update()和 saveOrUpdate()的区别?
Hibernate 中的 update()和 saveOrUpdate()的区别?

作者: 李琼    时间: 2012-10-20 20:58
update针对的是已存在的实体对象
saveOrUpdate()对象存在与否都不会有任何影响

hibernate的update直接修改,而saveorupdate是如果数据没有修改,而是新增,则执行save操作,如果是修改则执行修改操作。
作者: 王威    时间: 2012-10-20 21:11
简单来说:
      update() 更新,没有主键会报错的
      saveOrUpdate() 保存或更新, 没有主键就执行插入.
进一步分析:
      Update:是对暂态(transient )或是只是脱管(detached)的更新操作,对于暂态对象的更新操作通常不产生效果,对于脱 管对象是做了同步的操作,即数据库的数据发生变化并且对象状态也成为托管对象 。
       SaveOrUpdate : 也是对暂态(transient )或是只是脱管(detached)的进行操作,至于是插入还是更新,则要根据id 中指定的一些具体条件来分析。但是个人认为在明显只会发生插入操作的情况还是尽量避免用saveOrUpdate而直接用save即可。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2