注解方式 – 事务管理一致

天才阿梓 2024-4-24 48 4/24

当一个接口操作两张表时,为了保证数据的一致性避免污染数据。会开启事务注解

 

1、启动类添加启用注解@EnableTransactionManagement

@SpringBootApplication
@EnableTransactionManagement //开启注解方式的事务管理
@Slf4j
public class SkyApplication {
    public static void main(String[] args) {
        SpringApplication.run(SkyApplication.class, args);
        log.info("server started");
    }
}

2、在需要操作两张表的service添加@Transactional注解

@Transactional
@Override
public void addDish(DishDTO dishDTO) {
    //添加菜品信息
    Dish dish = new Dish();
    BeanUtils.copyProperties(dishDTO, dish);
    dishMapper.addDish(dish);

    //获取Dish的主键值
    Long dishId = dish.getId();

    //添加口味信息
    List<DishFlavor> dishFlavorList = dishDTO.getFlavors();
    if (dishFlavorList != null && !dishFlavorList.isEmpty()) {
        dishFlavorList.forEach(item -> item.setDishId(dishId));
        dishFlavorMapper.addBatch(dishFlavorList);
    }

}

 

- THE END -

天才阿梓

4月24日14:10

最后修改:2024年4月24日
2

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论