Session的save()、update()、merge()、lock()、saveOrUpdate()和persist()方法的功能简介说明
下文笔者讲述Session中常用方法的功能说明,如下所示
Hibernate对象状态简介说明
瞬时态(transient) 持久态(persistent) 游离态(detached)
瞬时态
处于此状态的实例 可使用save(),persist()或saveOrUpdate()方法变成持久态
游离态
此状态的实例 可使用调用update(),saveOrUpdate(),lock()或replicate()变成持久态 save()和persist()将会引发SQL的INSERT语句 update()或merge()会引发UPDATE语句
save()和update()区别: 一个是将瞬时态对象变成持久态 一个是将游离态对象变为持久态 merge()方法可以完成save()和update()方法的功能 其功能将新的状态合并到已有的持久化对象上或创建新的持久化对象
persist()方法
1.persist()方法: 将一个瞬时态的实例持久化 但并不保证标识符被立刻填入到持久化实例中,标识符的填入可能被推迟到flush的时间 2.persist()方法: 保证当它在一个事务外部被调用的时候并不触发一个INSERT语句 当需要封装一个长会话流程的时候,persist()方法是很有必要的 3.save()方法不保证第2条 它要返回标识符,所以它会立即执行INSERT语句 不管是在事务内部还是外部
lock()方法和update()方法的区别
update()方法: 把一个已经更改过的脱管状态的对象变成持久状态 lock()方法: 把一个没有更改过的脱管状态的对象变成持久状态
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。