左连接查询数据 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);
        }

    }
相关推荐
子兮曰22 分钟前
把 649 种文件格式塞进一个网页里:一个「文件不出浏览器」的预览器
前端·javascript·后端
海鸥-w3 小时前
什么是AOP
java
EasyGBS3 小时前
摄像头还在线,画面已经不能用了?国标GB28181视频平台EasyGBS视频质量诊断怎么用
服务器·安全·音视频
Cc.Y3 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
程序员-Benothing3 小时前
Vim编辑器从入门到精通:模式、快捷键、配置、插件
linux·运维·服务器
paopaokaka_luck3 小时前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)
java·javascript·spring boot·数据分析·echarts·mybatis
sm_926787053 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
阿森_dev3 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序
java·开发语言·spring boot·毕业设计·课程设计
Sarvartha4 小时前
Lambda 表达式和函数式接口
java·开发语言