A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Hibernate 中的 update()和 saveOrUpdate()的区别?

2 个回复

倒序浏览
update针对的是已存在的实体对象
saveOrUpdate()对象存在与否都不会有任何影响

hibernate的update直接修改,而saveorupdate是如果数据没有修改,而是新增,则执行save操作,如果是修改则执行修改操作。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

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

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马