resultMap2_关联查询collection分步查询&延迟加载

Posted Dong诗原

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了resultMap2_关联查询collection分步查询&延迟加载相关的知识,希望对你有一定的参考价值。

1、DepartmentMapper.java添加代码

public Department getDeptByIdStep(Integer id);

2、EmployeeMapperPlus.java添加代码

public Employee getEmpByIdDeptId(Integer deptId);

3、DepartmentMapper.xml添加代码

<!-- public Department getDeptByIdStep(Integer id); -->
    <resultMap type="com.atguigu.mybatis.bean.Department" id="MyDeptStep">
        <id column="id" property="id"/>
        <result column="departmentName" property="departmentName"/>
        <collection property="emps" 
                            select="com.atguigu.mybatis.dao.EmployeeMapperPlus.getEmpByIdDeptId"
                                column="id">
        </collection>    
    </resultMap>
    <select id="getDeptByIdStep" resultMap="MyDeptStep">
        select id,dept_name departmentName from tbl_dept where id=#{id}
    </select>

注:collection类似于association,先调用getDeptByIdStep方法获得tbl_dept中id的值,在用获取的id值做为参数传入到com.atguigu.mybatis.dao.EmployeeMapperPlus接口中getDeptByIdStep方法得到Employee 的所有参数值,最后封装到Department对象中 

4、EmployeeMapperPlus.xml添加代码

<!-- public Employee getEmpByIdDeptId(Integer deptId); -->
    <resultMap type="com.atguigu.mybatis.bean.Employee" id="emps22">
        <id column="id" property="id"/>
        <result column="last_name" property="lastName"/>
    </resultMap>
    <select id="getEmpByIdDeptId" resultMap="emps22">
        select * from tbl_employee where d_id=#{deptId}
    </select>

 

以上是关于resultMap2_关联查询collection分步查询&延迟加载的主要内容,如果未能解决你的问题,请参考以下文章

mybatis映射文件select_resultMap_关联查询_collection定义关联集合

Mybatis_一对多关联查询

MyBatis关联查询,一对多关联查询

mybatis collection 一对多关联查询,单边分页的问题总结!

嵌套查询--------关联一对多关系----------collection

mongodb怎么做表的关联