Spring 锁在数据库中是如何工作的? @Query(“从消息m中选择m.masterOrderNo,其中m.masterOrderNo=:masterOrderNo”) @锁(锁模式类型。悲观写入) 公共列表锁主订单(@Param(“masterOrderNo”)字符串masterOrderNo);
谁能给我解释一下这把锁的内部工作原理吗?根据我以上的理解,sql查询将从数据库中获取记录列表,并检查所有记录是否处于提交状态。如果任何记录未处于提交状态,则表示一个事务已在执行某些操作。因此,它将阻止所有其他事务。如果提交了所有记录,那么它将只允许一个事务,并将阻止其余的事务。我的解释正确吗Spring 锁在数据库中是如何工作的? @Query(“从消息m中选择m.masterOrderNo,其中m.masterOrderNo=:masterOrderNo”) @锁(锁模式类型。悲观写入) 公共列表锁主订单(@Param(“masterOrderNo”)字符串masterOrderNo);,spring,database,oracle,spring-boot,Spring,Database,Oracle,Spring Boot,谁能给我解释一下这把锁的内部工作原理吗?根据我以上的理解,sql查询将从数据库中获取记录列表,并检查所有记录是否处于提交状态。如果任何记录未处于提交状态,则表示一个事务已在执行某些操作。因此,它将阻止所有其他事务。如果提交了所有记录,那么它将只允许一个事务,并将阻止其余的事务。我的解释正确吗 @Query("select m.masterOrderNo from IN_MESSAGE m where m.masterOrderNo=:masterOrderNo") @
@Query("select m.masterOrderNo from IN_MESSAGE m where m.masterOrderNo=:masterOrderNo")
@Lock(LockModeType.PESSIMISTIC_WRITE)
public List<String> lockMasterOrder(@Param("masterOrderNo") String masterOrderNo);