左连接查询数据 left join

同理的Right

XML 复制代码
<select id="pageQuery" resultType="com.sky.vo.DishVO">
        select d.* , c.name as categoryName from dish d left outer join category c on d.category_id = c.id
        <where>
            <if test="name != null">
                and d.name like concat('%',#{name},'%')
            </if>
            <if test="categoryId != null">
                and d.category_id = #{categoryId}
            </if>
            <if test="status != null">
                and d.status = #{status}
            </if>
        </where>
        order by d.create_time desc
    </select>

事务机制,要么同时成功,要么同时失败

java 复制代码
    //新增菜品
    @Override
    @Transactional
    public void saveWithFlavor(DishDTO dishDTO) {

        // 新增表菜品
        Dish dish = new Dish();
        BeanUtils.copyProperties(dishDTO,dish);
        dish.setImage("目前没有阿里云服务器OOS,先这样了..");
        dishMapper.insert(dish);
        Long dishId = dish.getId();// 获取到生成的ID,然后赋值到 dish_flavor这个表里面

        //新增口味,批量循环添加口味
        List<DishFlavor> flavors = dishDTO.getFlavors();
        if(!flavors.isEmpty() && flavors != null){

            // 设置dish_flavor表的菜单ID值
            flavors.forEach((item)->{
                item.setDishId(dishId);
            });

            //向口味表插入n条数据
            dishFlavorMapper.insertBatch(flavors);
        }

    }
相关推荐
Apache RocketMQ4 小时前
RocketMQ源码解析——秒级定时消息介绍
java·云原生·消息队列·rocketmq·java-rocketmq
GISer_Jing4 小时前
浏览器 Agent 插件开发规格书 (SPEC)
前端·ai·前端框架·edge浏览器
xiaoming00184 小时前
JAVA项目打包部署运维全流程(多服务、批量)
java·linux·运维
189228048614 小时前
NV243美光MT29F32T08GWLBHD6-24QJES:B
大数据·服务器·人工智能·科技·缓存
别叫我->学废了->lol在线等4 小时前
评估总结模块(暂不做)
前端
清灵xmf4 小时前
CC Switch:解决 AI 编程工具配置
前端·人工智能·cc switch
拾-光4 小时前
【Git】命令大全:从入门到高手,100 个最常用命令速查(2026 版)
java·大数据·人工智能·git·python·elasticsearch·设计模式
洋哥网络科技5 小时前
centos7 升级openssh-10.2
linux·运维·服务器·系统安全
无人不xiao5 小时前
springBoot 实现 接口进度条
java·spring boot·后端
IT_陈寒5 小时前
Redis缓存击穿把我坑惨了,原来这样解决才靠谱
前端·人工智能·后端