zoukankan      html  css  js  c++  java
  • SpringBoot mybatis多对一查询、多对多查询

    查询用户列表,并查询每个用户下面最新的一个订单,和每个用户下面的所有订单。

    package com.yutangzongcai.demo.mapper;
    
    import com.yutangzongcai.demo.entity.DingdanEntity;
    import com.yutangzongcai.demo.entity.UsersEntity;
    import org.apache.ibatis.annotations.*;
    
    import java.util.List;
    
    public interface UsersMapper {
    
        /**
         * 查询用户列表
         * 同时多对一 【查询用户最新1个订单】
         * 同时多对多 【查询用户所有订单】
         * @return
         */
        @Select("select id,name,age from users order by id asc")
        @Results(id = "empMap", value = {
                @Result(column = "id", property = "id", id = true),
                @Result(column = "name2", property = "name"),
                @Result(column = "id", property = "dingdanOne", one = @One(select = "com.yutangzongcai.demo.mapper.UsersMapper.dingdanOne")),
                @Result(column = "id", property = "dingdanMany", many = @Many(select = "com.yutangzongcai.demo.mapper.UsersMapper.dingdanMany"))
        })
        List<UsersEntity> all();
    
        /**
         * 查询用户最新1个订单
         * @param userId
         * @return
         */
        @Select("select * from dingdan where userId=#{userId} order by id desc limit 0,1")
        DingdanEntity dingdanOne(@Param("userId") Integer userId);
    
        /**
         * 查询用户所有订单(按最新排序)
         * @param userId
         * @return
         */
        @Select("select * from dingdan where userId=#{userId} order by id desc")
        List<DingdanEntity> dingdanMany(@Param("userId") Integer userId);
    
    }

    在使用@Result注解进行one对一关联或many对多关联时,必须设置主键,只有设置了主键,才能通过主键传入参数,进行子查询。

    关联查询时,被关联的方法入参userId,是由@Result设置中的主键所决定的,这里mybatis已经进行了自动传入。

  • 相关阅读:
    js规范
    JS多个函数多个参数如何动态调用,apply的灵活应用
    我是插件狂人,jDuang,jValidator,jModal,jGallery
    Button在IE6、7下的自适应宽度问题解决方法
    100个直接可以拿来用的JavaScript实用功能代码片段
    docker
    jsonp实现post跨域请求
    setInterval倒计时10s
    CI框架源码解读(1)-入口文件index.php
    为什么开始源码阅读
  • 原文地址:https://www.cnblogs.com/phpyangbo/p/15705580.html
Copyright © 2011-2022 走看看