[title]当一个接口操作两张表时,为了保证数据的一致性避免污染数据。会开启事务注解[/title]
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日


评论区暂未迁移
旧站评论表还没有完全接入新版接口层,这里会继续按数据库方式补齐。