当一个接口操作两张表时,为了保证数据的一致性避免污染数据。会开启事务注解
1、启动类添加启用注解@EnableTransactionManagement
@SpringBootApplication
@EnableTransactionManagement //开启注解方式的事务管理
@Slf4j
public class SkyApplication {
public static void main(String[] args) {
SpringApplication.run(SkyApplication.class, args);
log.info("server started");
}
}
@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 -
最后修改:2024年4月24日
共有 0 条评论