1.事务@EnableTransactionManagement @Transactional
/*** 新增菜品** @param dishDTO*/@Override@Transactionalpublic void saveWithFlavor(DishDTO dishDTO) {Dish dish = new Dish();BeanUtils.copyProperties(dishDTO, dish);dish.setStatus(StatusConstant.ENABLE);//保存菜品数据dishMapper.insert(dish);//获取inset语句生成的主键值菜品idLong dishId = dish.getId();List<DishFlavor> flavors = dishDTO.getFlavors();if (flavors != null && flavors.size() > 0) {flavors.forEach(dishFlavor -> {dishFlavor.setDishId(dishId);});//保存菜品口味数据dishFlavorMapper.insertBatch(flavors);}}
useGenerateKeys='true' keyProperty='id'
<insert id="insert" parameterType="com.sky.entity.Dish" useGeneratedKeys="true" keyProperty="id">insert into dish (name, category_id, price, image, description, status, create_time, create_user, update_time, update_user)values (#{name}, #{categoryId}, #{price}, #{image}, #{description}, #{status}, #{createTime}, #{createUser},#{updateTime}, #{updateUser})</insert>
insert into 表名(属性)vlaues(xxx,xxx,xxx...),(xxx,xxx,xxx...),(xxx,xxx,xxx...)
foreach
<insert id="insertBatch" parameterType="com.sky.entity.DishFlavor">insert into dish_flavor (dish_id, name, value) values<foreach collection="flavors" item="dishFlavor" separator=",">(#{dishFlavor.dishId},#{dishFlavor.name},#{dishFlavor.value})</foreach></insert>
@RequestParam
/*** 删除菜品** @param ids* @return*/@DeleteMapping()@ApiOperation("删除菜品")public Result deleteByIds(@RequestParam List<Long> ids) {log.info("删除菜品,id为:{}", ids);dishService.deleteByIds(ids);//清理缓存数据cleanCache("dish_*");return Result.success();}
select * from 表名 where 属性 in (xx,xx,xx)
<select id="getByDishIds" resultType="java.lang.Long" parameterType="com.sky.entity.SetmealDish">select setmeal_id from setmeal_dish where dish_id in<foreach collection="dishIds" item="id" open="(" separator="," close=")">#{id}</foreach></select>
delete from 表名 where 属性=xxx
update 表名 set 属性=xxx where 属性=xxx