新增菜品多表实现

发布时间 2023-03-23 19:34:42作者: 大灰狼21

由于要新增到口味和菜品两张表,得扩展service方法

 

 之后到实现类去写具体

 

 由于要用口味表,这里得把口味表的service注入

 

 

  @Autowired
    private DishFlavorService dishFlavorService;

    /**
     * 新增菜品,同时保存对应的口味数据
     * @param dishDto
     */
    @Transactional//操作多张表,要加事务
    public void saveWithFlavor(DishDto dishDto) {
        //保存菜品的基本信息到菜品表dish
        this.save(dishDto);
        //这里没有id,得通过存到菜品表弄出来id然后存到口味表
        Long dishId = dishDto.getId();//菜品id
        //存信息到口味表
        //菜品口味
        List<DishFlavor> flavors = dishDto.getFlavors();
        flavors = flavors.stream().map((item) -> {
            item.setDishId(dishId);
            return item;
        }).collect(Collectors.toList());

        //保存菜品口味数据到菜品口味表dish_flavor
        dishFlavorService.saveBatch(flavors);

    }