Hibernate 的 session.save()与 session.saveOrUpdate()的区别?【面试题详解】

今天爱分享给大家带来Hibernate 的 session.save()与 session.saveOrUpdate()的区别?【面试题详解】,希望能够帮助到大家。
1.save()方法,调用 save 方法时,首先会在 session 缓存中查找保存对象如果实体
对象已经处于 Persient 状态,直接返回;否则并将保存至数据库,对象变为持久状态。
2.saveOrUpdate()方法:和 save 方法一样首先在 session 缓存中查找,判断对象是
否为为保存状态,如果对象处于 Persient,不执行操作,处于 Transient 执行 save 操作,
处于 Detached 调用 saveOrUpdate 将对象与 session 重新关联(简单的说就是该方法会先看
该对象是否已经存在,如果已经存在就更新,否则新增保存),如果此时 saveOrUpdate 的对
象与另一个与 Session 关联的对象持有相同的持久化标识则抛出相同的标识符异常。

人已赞赏
Java

Spring 对多种 ORM 框架提供了很好的支持,结合事务管理描述 spring 从哪些方面提供了对 Hibernate 的支持。【面试题详解】

2020-12-9 15:35:09

Java

Hibernate 中 sedssion.get()与 session.load()的区别?【面试题详解】

2020-12-9 15:36:34

'); })();