Hibernate支持乐观锁。当多个事务同时对数据库表中的同一条数据操作时,如果没有加锁机制的话,就会产生脏数据(duty data)。Hibernate有2种机制可以解决这个问题:乐观锁和悲观锁。这里讨论乐观锁。
Hibernate乐观锁,能自动检测多个事务对同一条数据进行的操作,并根据先胜原则,提交第一个事务,其他的事务提交时则抛出org.hibernate.StaleObjectStateException异常。
要实现Hibenate乐观锁,我们首先要在Entity类里增加一个版本控制字段,字段名随意,比如就叫version,对应hibernate类型只能为long,integer,short,timestamp,calendar,也就是只能为数字或timestamp类型。然后在字段上面加个@Version注释,如:
@Version
private Long version;
数据更新保存时注意:
页面提交数据,后台更新时,如果提交了ID字段,但是没有提交version字段,那么,后台默认为该数据还是一条新数据,所以不做更新操作,做插入操作。
解决方法有2种(根据群里讨论的结果):
1、提交ID字段时,同时提交version字段;
2、只提交ID字段,后台根据ID先get得到一个entity,然后set进其他的值,最后再保存。
分享到:
相关推荐
在SS3EX框架中,UrlRewrite的使用是为了解决传统URL模式中参数过多、过于复杂的问题,提供一种更简洁、更美观的URL表示方式。下面将详细介绍SS3EX中使用UrlRewrite的相关知识点。 首先,URL重写主要是通过配置文件...
总结来说,这个项目是关于将ss3ex转换成一个支持Maven的Java项目,便于管理和构建,同时也可能提供了一种工具,帮助开发者在他们的工作中更高效地使用或集成ss3ex。通过博客链接提供的信息,读者可以深入了解这个...
在项目中,Spring与Hibernate结合使用,实现了数据持久层的高效管理。JPA接口提供了统一的数据访问API,降低了与具体数据库系统的耦合度。同时,通过Struts2的拦截器和动作设计,实现了业务逻辑和视图的分离,提高了...
2007卡耐基软件工程网路教材 SSD3ex2答案
ssd3ex5源码,自己写的,保证100分!
在标签中,“SSD3”可能是课程的代号,而“JAVA”则指明了编程语言,这意味着我们将探讨如何使用Java来处理与SSD相关的任务。Java是一种广泛使用的、跨平台的编程语言,非常适合开发系统级软件,包括SSD控制器或管理...
博客链接(https://ss3ex.iteye.com/blog/436901)可能包含了关于如何在Maven项目中集成和配置iBatis的实践教程,读者可以通过阅读该博客获取更具体的步骤和示例代码。 综上所述,"maven版ibatis"的主题涵盖了Maven...
Sizzle 是一套前端用智能来处理模块和组件依赖关系的框架。 它遵循 CommonJS 的运行规范来完成对各个模块的动态加载。...Sizzle 框架将被使用在 PJBlog4 新版本中,让后台更加代码逻辑化和模块化。
它以其高容量、高速度、低成本和可靠性获得了广泛应用,尤其是在非营利组织中,如科罗拉多盲人护助中心。 1. **高容量与高速度**: AIT-3Ex是Sony AIT系列的升级版本,提供了显著的存储性能提升。在未压缩状态下,...
在Eclipse中创建一个新的项目,例如命名为ejb3ex。然后,在Package Explorer中查看项目的结构。 #### 步骤9:配置Hibernate 选择File -> New -> Other,然后选择Hibernate Configuration File,填写适当的值,添加...
例如,`ch3ex6.m`, `ch3ex5.m`, `ch2ex3.m`, `ch4ex5a.m` 和 `ch2ex4.m` 可能是书中的练习题,每个对应一个特定章节的实例,可能涵盖了不同主题的MATLAB编程实践。 3. **图像处理**: 标签"图像处理与计算机视觉...
派特莱LCE-A 多层信号灯2D CAD Pole M2pdf,特点:高节能无需维护的LED多层信号灯,体积小可识别性强,特别匹配于各类中小型设备的外观设计。派特莱特有的混合棱镜切割灯罩,消除了可能存在的视觉盲点,大大提高了远...
Root权限是指在Android操作系统中获取最高管理员权限,允许用户对系统的底层进行修改和控制。对于喜欢自定义手机系统的用户来说,Root权限能够提供更多的自由度和可能性。但需要注意的是,Root操作可能会导致手机...
2. **适用**:此协议适用于所有使用HBP-9021/9020的通信场景,无论是在设备的开发阶段还是实际操作过程中。 3. **连接构成**:在PC与主CPU进行通信时,它们通过RS232C串行通信端口相连,具体是通过UART接口的TxD...
3. **期望(数学期望)**(Expectation):随机变量的期望表示其平均值,如第4题中的EX=,第9题中的EX=np=1.6,第13题中的E(z)=3EX-2。 4. **方差(Variance)**:随机变量的方差衡量其数值离散程度,如第4题中的DX...
在这个示例中,使用了名为`libZPlay`的库来实现这一功能。`libZPlay`是一个开源的跨平台库,它提供了音频播放、解码和处理的能力,同时也支持读取MP3文件的ID3标签。 ID3标签是附加在MP3文件中的元数据标准,用于...
【压缩包子文件的文件名称列表】中的文件可能分别对应课程的不同单元,如BI-U03_3EX.ppt可能是第三单元的练习讲解或答案解析,BI-U04_3EX.ppt可能是第四单元的内容。这些PPT文件可能包含了课件展示、习题解析、语言...
对于函数 \( g(x) = f(x) - 3ex - m \) 有两个零点的问题,意味着 \( g(x) \) 的图像与 \( x \) 轴有两个交点,这需要通过分析 \( g(x) \) 的导数,判断其单调性,以及端点和极值点的函数值来确定实数 \( m \) 的...