乐观锁问题
来源:互联网 发布:华为畅享5手机壳淘宝 编辑:程序博客网 时间:2024/04/30 09:13
Account ao1 = (Account) session1.load(Account.class, new Long(28));
Account ao2 = (Account) session2.load(Account.class, new Long(28));
如果Account ao2 = (Account) session2.load("Account", new Long(28))就出现不同步,只更新前一部分(ao1);
if(tx2 != null)
{
tx2.rollback(); //有同步数据库的作用
updateEntity2();
}
hibernate》hbm.xml设置:<property name="hibernate.connection.isolation">2</property>隔离级别
//测试乐观锁
Session session1=sf.openSession();
Session session2=sf.openSession();
Transaction tx1 = session1.beginTransaction();
Transaction tx2 = session2.beginTransaction();
try{
Account ao1 = (Account) session1.load(Account.class, new Long(28));
Account ao2 = (Account) session2.load(Account.class, new Long(28));
//这时候,两个版本号是相同的
ao1.setMoney(ao1.getMoney()+10);
tx1.commit();
//这时候,两个版本号是不相同的
ao2.setMoney(ao2.getMoney()+10);
tx2.commit();
System.out.println("OK!");
}catch(Exception e){
//System.out.println(e);
if(tx2 != null)//有同步数据库的作用
{
tx2.rollback();
updateEntity2();
}
else if(tx1 != null)//有同步数据库的作用
{
tx1.rollback();
updateEntity2();
}
void updateEntity2() {
//测试乐观锁
Session session1=sf.openSession();
Transaction tx1 = session1.beginTransaction();
try{
Account ao1 = (Account) session1.load(Account.class, new Long(28));
//这时候,两个版本号是不相同的
ao1.setMoney(ao1.getMoney()+10);
tx1.commit();
System.out.println("OK2!");
}catch(Exception e){
//System.out.println(e);
if(tx1 != null)//有同步数据库的作用
{
tx1.rollback();
updateEntity();
}
}finally{
session1.close();
}
}
- 乐观锁问题
- optimisticlockexception 乐观锁的问题
- es 乐观锁问题重现
- mybatis 乐观锁实现,解决并发问题。
- mybatis乐观锁实现,解决并发问题
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
- hibernate--悲观锁-乐观锁的并发问题
- java 快速排序
- linux常用查看硬件设备信息命令
- 释放资源的几种方法总结
- linux mysql基本语法学习
- poll函数可用的测试值
- 乐观锁问题
- 我们结婚吧!让我陪你一辈子
- Windows2008+iis7帐号设置
- 易科创始人陈文琦:为iOS开发者打造Andrioid移植平台
- 经典网页设计:25个精美的全屏背景网站设计作品
- 王振威 在 Spring 3.1 中使用 @Cacheable 实现缓存
- int 和 String 互相转换的多种方法
- 企业管理软件逃不过的坎 SaaS、CSM、SNS
- 使用U盘重装WIN7步骤及注意事项