在hibernate事务处理中造成的写问题(丢失更新的问题:更新一定是查询最新的结果),之前博客简单描述了一下解决方法,这篇博客,来详细讲解一下如何用乐观锁和悲观锁解决写问题。
下面我们通过例子来理解:
在事务操作中,最经典的就是转账案例,
如图所示:
AB两个用户同时操作数据库,A用户在原余额上添加了10块钱,所以是110元,但是B用户添加了30元,却变成了140元,这就造成了并发操作的时候,引发的丢失更新。
用代码来看:
public void test1(){
Session session = HibernateUtils.getSession();
Transaction transaction = session.beginTransaction();
Customer customer =(Customer) session.get(Customer.class, 6);
customer.setMoney(customer.getMoney()+10);
transaction.commit();
Hib