【文件属性】:
文件名称:乐观锁实现方式-hibernate框架详解
文件大小:4.94MB
文件格式:PPT
更新时间:2021-04-26 09:27:37
hibernate
6、乐观锁实现方式
有两种
version元素(版本控制)
timestamp元素(时间戳控制)
二者的区别是version一般是整数据,timestamp是时间型数据,配置方式不一样。
大多数基于数据版本记录机制(version)实现,一般是在数据库表中加入一个version字段读取数据时将版本号一同读出,之后更新数据时版本号加1,如果提交数据时版本号小于或等于数据表中的版本号,则认为数据是过期的,否则给予更新。
二十三、Hibernate 悲观锁和乐观锁
游离状态的实例可以通过调用save()、persist()或者saveOrUpdate()方法进行持久化。持久化实例可以通过调用 delete()变成游离状态。通过get()或load()方法得到的实例都是持久化状态的。游离状态的实例可以通过调用 update()、0saveOrUpdate()、lock()或者replicate()进行持久化。游离或者*状态下的实例可以通过调用merge()方法成为一个新的持久化实例。
save()和persist()将会引发SQL的INSERT,delete()会引发SQLDELETE,而update()或merge()会引发SQLUPDATE。对持久化(persistent)实例的修改在刷新提交的时候会被检测到,它也会引起SQLUPDATE。saveOrUpdate()或者replicate()会引发SQLINSERT或者UPDATE。