Java_SSH之Hibernate_002_05:save和persist方法的区别,都是保存数据的,persist保存的对象,在保存前,不能设置id,否则会报错

一、save和persist方法的区别

save方法:瞬时态 转换 持久态 ,会初始化OID

1.执行save方法,立即触发insert语句,从数据库获得主键的值(OID值)
2.执行save方法前,设置OID将忽略。
3.如果执行查询,session缓存移除了,在执行save方法,将执行insert
如下图
不管是save还是persist,如果没有清除session都会先insert,再update
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

persist方法:瞬时态 转换 持久态

1、persist保存的对象,在保存前,不能设置id,否则会报错
2、save和persist都是持久化对象的作用
3、save 因为需要返回一个主键值,因此会立即执行 insert 语句,而 persist 在事务外部调用时则不会立即执行 insert 语句,在事务内调用还是会立即执行 insert 语句的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41753340/article/details/113980460