JPA悲观的显式@Lock用例是什么(而@Transactional不是一个选择)?

时间:2019-11-17 21:31:45

标签: java jpa pessimistic-locking

我对JPA和DB锁(乐观锁和悲观锁)和事务,它们如何工作以及有什么保证有一些了解。

  

如果由于显式锁定需要活动事务而调用锁时没有活动事务,则抛出TransactionRequiredException。

所以我的问题是:当事务(在JPA情况下为@Transactional)不足并且需要显式使用@Lock(LockModeType.PESSIMISTIC_ *)时,用例是什么?

我对精确的悲观锁感兴趣,并且期望使用案例如下:

  

Alice和Bob同时在Wikipedia上编辑页面,Alice开始编辑页面并锁定它。在这种情况下冗余/不足/性能低下............................

我不希望:

  1.   

    仅需要锁时使用@Lock

  2.   

    最好使用乐观锁

  3.   

    锁定用于防止脏读(读取尚未提交的数据)和不可重复读(读取在一次读取完成之前被另一事务删除的数据)。

0 个答案:

没有答案