hibernate中的悲观锁和乐观锁

所谓悲观锁和乐观锁都是为了解决并发问题而提供的一种锁机制。

1、悲观锁

悲观锁对事务并发问题持悲观态度,认为一定会出问题,所以从加载数据就开始锁定,直到事务提交。期间其他事务不能对数据进行操作。 通过数据库本身的机制来实现。即设置事务隔离级别为串行化。

2、乐观锁

由于悲观锁并发处理能力太差,hibernate提供了乐观锁机制。对数据的并发问题持乐观态度,认定事务出现异常操作是可以接受的。通常是在表中添加版本号或时间戳字段来实现。每次事务开启时,会去获取到数据的版本号,在事务提交时,再去获取数据的版本号,当两个版本号一致时,事务提交,并将版本号增加1。如果不一致,说明在这期间有其他事务操作了该数据,那么事务回滚,放弃操作。

posted @ 2020-05-12 22:21  等你的夏天  阅读(208)  评论(0编辑  收藏  举报