Mybatis高级-resultMap之collection聚集

版权声明

版权声明:本文由 低调小熊猫 发表于 低调小熊猫的博客
转载声明:自由转载-非商用-非衍生-保持署名,非商业转载请注明作者及出处,商业转载请联系作者本人qq:2696284032
文章链接:https://aodeng.cc/archives/mybatisgaoji

简介

聚集元素用来处理“一对多”的关系。需要指定映射的Java实体类的属性,属性的javaType(一般为ArrayList);列表中对象的类型ofType(Java实体类);对应的数据库表的列名称;
额,估计这样说大家听不懂,简单的意思就是把两张表联系起来,用于解决一些奇怪的需求

代码

1.定义简单的sql片段


    
        SELECT
            vo.expenseId,
            vo.projectId,
            vo.expenseUserId,
            sua.realName as expenseUserName,
            vo.expenseTime,
            vo.expenseTypeId,
            vo.beneficialDepartmentId,
            sd.name as beneficialDepartmentName,
            vo.currencyId,
            vo.money,
            vo.paperCheckerId,
            vo.paperCheckerTime,
            vo.paidDepartmentId,
            vo.paidUserId,
            vo.paidTime,
            vo.expenseNote,
            vo.description,
            vo.currentStatus,
            vo.invoiceAmount,
            vo.paperFlag,
            vo.recordFlag,
            vo.createUserId,
            vo.createTime
        FROM p_expense vo
        INNER JOIN sys_user_archive sua ON sua.userId=vo.expenseUserId
        INNER JOIN sys_department sd ON sd.departmentId=vo.beneficialDepartmentId
     

2.查询条件拼接,返回resultMap


3.定义resultMap,用于上面返回的resultMap,重点在于collection,先看代码,我下面解释


        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

4.定义collection用的sql片段


低调小熊猫独家解析

先给大家看一张图,我就是靠这一张图学会的,不要说图看不清楚,自己ctrl+

ok,这样聪明的估计就学会了,不会的看上面代码吧
额,还是解释几个地方


        

1.property=”checkers”就是上面那个resultMap返回的实体类里面封装的一个集合属性。

2.ofType=”com.account.web.vo.admin.system.SysUserArchiveVo”就是集合的类型

3.select=”findChecker3”就是第四步使用的sql片段的id

4.column=”{expenseId2=expenseId}”那,这个就比较重要了,expenseId就是上面resultMap的字段的名字,expenseId2就是下面sql片段里面条件接收值的字段

你可能感兴趣的:(后端技术)