@Transactional 事务注解使用场景
小于 1 分钟
@Transactional 事务注解使用场景
需要事务的场景
要求数据一致性时
1.同一个方法内,操作多个表,并且这些表的数据必须同时成功或失败(如订单和支付表)。
如:订单支付操作成功,但是订单状态修改失败,导致商品库存没有扣减,导致数据不一致。
2.涉及增删改(INSERT、UPDATE、DELETE)操作,如果一个 SQL 失败了,其他 SQL 也应该回滚。
不需要事务的场景
1.只有查询数据的操作,查询不会修改数据,所以不需要事务。
2.不同的表操作相互独立,即使一个操作失败了,也不会影响其他操作。
3.单表的单次操作
public void updateUserName(Long userId, String newName) {
userRepository.updateName(userId, newName); // 只涉及一张表
}