我正在使用 Spring-Data-Jpa 并使用 @Lock 注释(PESSIMISTIC_WRITE)来获取数据库(Oracle)锁。我需要帮助了解以下情况是否会导致数据库死锁。
- 事务 1(PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT)一个对说教师表进行数据库锁定(说锁定被 id=1 的行接管)。它尝试在子表中插入一条新记录,比如会议。教师表上未进行任何更新
- 事务 1 正在进行时。事务 2(PROPAGATION_REQUIRED, ISOLATION_DEFAULT) 尝试更新教师表(id=1 的行)。它不需要数据库锁。
- 由于锁已被 id 1 的行接管。事务 2 必须等待事务 1 结束。
这种情况会导致数据库死锁吗?