Spring Data JPA / Hibernate中锁的范围是什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Data JPA / Hibernate中锁的范围是什么?相关的知识,希望对你有一定的参考价值。
当使用Spring Data的JpaRepository
时,如果findOneById(...)
方法用@Lock(LockModeType.PESSIMISTIC_WRITE)
(或任何其他)注释,那么锁的范围是什么,i。即它有多长时间了?只有在执行select查询时,或者直到事务结束?
P.S。:如果调用方法用@Transactional
注释怎么办?
答案
从JPA 2.1规范(强调我的):
悲观锁定保证一旦事务获得对实体实例的悲观锁定:
- 没有其他事务(使用Java Persistence API的应用程序的事务或使用底层资源的任何其他事务)可以成功修改或删除该实例,直到持有锁的事务结束。
由于这是Spring Data JPA使用的机制,因此锁定一直持续到事务结束。
以上是关于Spring Data JPA / Hibernate中锁的范围是什么?的主要内容,如果未能解决你的问题,请参考以下文章
spring-data-jpa 和 spring-boot-starter-data-jpa 的区别
spring-data详解之spring-data-jpa:简单三步快速上手spring-data-jpa开发