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

    }
相关推荐
阿维的博客日记5 小时前
Hippo4j 线程池监控平台部署手册
java·spring boot·后端
yuanyxh7 小时前
Mac 软件推荐
前端·javascript·程序员
万少7 小时前
AtomCode开发微信小程序《谁去呀》 全流程
前端·javascript·后端
某人辛木7 小时前
Web自动化测试
前端·python·pycharm·pytest
C+++Python8 小时前
详细介绍一下Java泛型的通配符
java·windows·python
Kagol8 小时前
Superpowers GSD gstack AgentSkills深度测评
前端·人工智能
pixcarp8 小时前
知识库系统的内容资产闭环怎么设计
服务器·数据库·后端·golang
JosieBook8 小时前
【数据库】时序预测能力的分级进化:TimechoAI如何让每一类用户都能精准预见未来
java·开发语言·数据库
excel9 小时前
JavaScript 字符串与模板字面量:从表象到本质理解
前端
京东云开发者9 小时前
当AI成为导演-如何用AI创作动漫短剧
前端