前端传回的数据有多表关联
创建dto类
package org.example.reggie.Dto;
import lombok.Data;
import org.example.reggie.entity.Dish;
import org.example.reggie.entity.DishFlavor;
import java.util.ArrayList;
import java.util.List;
@Data
public class DishDto extends Dish {
private List<DishFlavor> flavors = new ArrayList<>();
private String categoryName;
private Integer copies;
}
在service写方法
package org.example.reggie.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.example.reggie.Dto.DishDto;
import org.example.reggie.entity.Dish;
import org.example.reggie.entity.DishFlavor;
import org.example.reggie.mapper.DishMapper;
import org.example.reggie.service.DishFlavorService;
import org.example.reggie.service.DishService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
/**
* @ClassName DishServiceImpl
* @Description TODO
* @date 2024/8/18 12:18
* @Version 1.0
*/
@Service
@Slf4j
public class DishServiceImpl extends ServiceImpl<DishMapper, Dish> implements DishService {
@Autowired
private DishFlavorService dishFlavorService;
//新增菜品,同时插入菜品对应的口味数据,需要操作两张表
@Transactional//添加事务
public void saveWithFlavor(DishDto dishDto){
//保存菜品基本信息到菜品表dish
this.save(dishDto);
//获取dish表中的id给到dishflavor中做dishid的值
Long dishId = dishDto.getId();
List<DishFlavor> flavors=dishDto.getFlavors();
//使用stream流将dish表的id值赋值到dishflavor的dishid中
flavors.stream().map((item)->
{
item.setDishId(dishId);
return item;
}).collect(Collectors.toList());
//批量保存
dishFlavorService.saveBatch(flavors);
}
}