博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate中的Entity类的乐观锁配置
阅读量:4179 次
发布时间:2019-05-26

本文共 993 字,大约阅读时间需要 3 分钟。

首先,持久化的修改仅限于对存储的UPDATE和DELETE操作,对于INSERT和SELECT无需考虑这个问题。

这里介绍乐观锁的使用。

1. 在对JPA的实现中,其乐观锁就是在进行UPDATE和DELETE操作时检查Entity类中专门的版本属性。

Entity类中的版本属性使用@javax.persistence.Version标注定义。
Entity类中,可用作版本属性的有2种类型:
1)数字类型

  • int/Integer
  • short/Short
  • long/Long
2)Date类型
  • java.sql.Timestamp

@javax.persistence.Entitypublic class Thing {    @javax.persistence.Id    private Integer id;    @javax.persistence.Version    private Timestamp ts;    ...}
2. 在的Hibernate Native API实现中,乐观锁检查Entity类中的所有属性或所有会发生变化的属性

这种实现机制主要是为了集成遗留系统(遗留系统中往往没有专门的版本属性)。

使用@org.hibernate.annotations.OptimisticLocking(type=org.hibernate.annotations.OptimisticLockType.VERSION)定义Entity类。

其中,@org.hibernate.annotations.OptimisticLockType可能的值有4种:

  • VERSION,检查@javax.persistence.Version指定的属性(默认值)
  • NONE,禁用任何版本检查(即使指定了@javax.persistence.Version属性)
  • ALL,检查所有属性
  • DIRTY,只检查变化了的属性

@javax.persistence.Entity@OptimisticLocking (type = OptimisticLockType.ALL)public class EmployeeEntity implements Serializable{    public EmployeeEntity(){     }    //Other code}

转载地址:http://vnlai.baihongyu.com/

你可能感兴趣的文章
mysql的通用查询日志和慢查询日志
查看>>
IDEA中设置Run Dashboard(Services)
查看>>
Mysql5.7免安装安装教程 win10
查看>>
SpringBoot属性注入的几种方式
查看>>
Idea 解决SVN冲突
查看>>
Sptingboot AOP实现多数据源切换(Hive Impala oracle)
查看>>
dynamic-datasource动态多数据源整合hive impala
查看>>
Mybatis+impala插入超过510个字符串的字段报:HIVE_PARAMETER_QUERY_DATA_TYPE_ERR_NON_SUPPORT_DATA_TYPE
查看>>
SpringBoot项目启动完成自动打开网址
查看>>
记录一下把mapper.xml文件放在java的坑
查看>>
反射的使用
查看>>
使用Stream排序分组
查看>>
linux安装mysql 5.7.23二进制 安装jdk tomcat
查看>>
mysql总结 windows 版本
查看>>
POI 导出工具类
查看>>
HTTP请求工具类
查看>>
Ngnix+tomcat 集群以及session共享
查看>>
Nginx配置多个项目放在不同的tomcat中,共享同一个端口
查看>>
mysql的JDBC连接工具类
查看>>
ORACLE的JDBC连接工具类
查看>>