文章目录
- 一、save和persist方法的区别
- save方法:瞬时态 转换 持久态 ,会初始化OID
- persist方法:瞬时态 转换 持久态
一、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 语句的。