场景:

  • A:SecControlRulePojo.java
  • B:SecControlSubRulePojo
  • C:SecControlSubRuleManyPojo

实体A中包含List<B>字段,实体B中包含List<C>字段

使用mybatis完成查询映射。

首先定义ResultMap

<resultMap
type="com.wisdombud.dth.boss.control.pojo.SecControlRulePojo"
id="FULL_RESULT_MAP">
<id column="ID" jdbcType="DECIMAL" property="id" />
<result column="NAME" jdbcType="VARCHAR" property="name" />
<result column="ACTION_CODE" jdbcType="DECIMAL"
property="actionCode" />
<result column="TIP_INFO" jdbcType="VARCHAR" property="tipInfo" />
<result column="IS_VALID" jdbcType="DECIMAL" property="isValid" />
<result column="IS_WHITE" jdbcType="DECIMAL" property="isWhite" />
<result column="CREATE_LOGIN_NO" jdbcType="VARCHAR"
property="createLoginNo" />
<result column="CREATE_TIME" jdbcType="TIMESTAMP"
property="createTime" />
<result column="CREATE_SERIAL_NUM" jdbcType="DECIMAL"
property="createSerialNum" />
<result column="LAST_UPDATE_TIME" jdbcType="TIMESTAMP"
property="lastUpdateTime" />
<result column="LAST_LOGIN_NO" jdbcType="VARCHAR"
property="lastLoginNo" />
<result column="LAST_SERIAL_NUM" jdbcType="DECIMAL"
property="lastSerialNum" />
<result column="REMARK" jdbcType="VARCHAR" property="remark" />
<result column="RE1" jdbcType="VARCHAR" property="re1" />
<result column="RE2" jdbcType="VARCHAR" property="re2" />
<result column="RE3" jdbcType="VARCHAR" property="re3" />
<result column="RE4" jdbcType="VARCHAR" property="re4" />
<collection property="subRuleList"
ofType="com.wisdombud.dth.boss.control.pojo.SecControlSubRulePojo">
<result column="ID" property="id" />
<result column="RULE_ID" jdbcType="DECIMAL" property="ruleId" />
<result column="SUB_ACTION_CODE" jdbcType="DECIMAL"
property="actionCode" />
<result column="SUB_IS_VALID" jdbcType="DECIMAL"
property="isValid" />
<result column="SUB_IS_WHITE" jdbcType="DECIMAL"
property="isWhite" />
<result column="FACTOR_CODE" jdbcType="DECIMAL"
property="factorCode" />
<result column="OPERATOR_CODE" jdbcType="DECIMAL"
property="operatorCode" />
<result column="QUANTITY_VALUE" jdbcType="DECIMAL"
property="quantityValue" />
<result column="QUANTITY_TIME_START" jdbcType="TIMESTAMP"
property="quantityTimeStart" />
<result column="QUANTITY_TIME_END" jdbcType="TIMESTAMP"
property="quantityTimeEnd" />
<collection property="manyList"
ofType="com.wisdombud.dth.boss.control.pojo.SecControlSubRuleManyPojo">
<result column="SUB_MANY_ID" property="id" />
<result column="SUB_RULE_ID" property="subRuleId" />
<result column="VALUE_ID" property="valueId" />
<result column="VALUE_STRING" property="valueString" />
<result column="EXPRESSION" property="expression" />
</collection>
</collection>
</resultMap>

如果实体中包含相同的列名,需要给列名取别名并设置

<result column="别名" property="实体字段名" />

SQL:

<select id="selectAll" resultMap="FULL_RESULT_MAP">
SELECT
controlRule.ID,controlRule.NAME,controlRule.ACTION_CODE,controlRule.CREATE_LOGIN_NO,
controlRule.CREATE_SERIAL_NUM,controlRule.CREATE_TIME,controlRule.IS_VALID,controlRule.IS_WHITE,
controlRule.LAST_LOGIN_NO,controlRule.LAST_SERIAL_NUM,controlRule.LAST_UPDATE_TIME, subRule.ID subId,subRule.RULE_ID,subRule.ACTION_CODE
SUB_ACTION_CODE,subRule.IS_VALID SUB_IS_VALID,subRule.IS_WHITE
SUB_IS_WHITE,
subRule.FACTOR_CODE,subRule.OPERATOR_CODE,subRule.QUANTITY_VALUE,subRule.QUANTITY_TIME_START,subRule.QUANTITY_TIME_END, subRuleMany."ID"
SUB_MANY_ID,subRuleMany.SUB_RULE_ID,subRuleMany.VALUE_ID,subRuleMany.VALUE_STRING,subRuleMany.EXPRESSION
FROM
SEC_CONTROL_RULE controlRule,
SEC_CONTROL_SUB_RULE subRule,
SEC_CONTROL_SUB_RULE_MANY subRuleMany
WHERE
controlRule."ID"=subRule.RULE_ID AND subRule.RULE_ID =
subRuleMany.SUB_RULE_ID
</select>

mybatis一对多映射的更多相关文章

  1. MyBatis 一对多映射

    From<MyBatis从入门到精通> <!-- 6.1.2.1 collection集合的嵌套结果映射 和association类似,集合的嵌套结果映射就是指通过一次SQL查询将所 ...

  2. mybatis一对多映射【班级与学生】

    1)如图 2)创建grades.sql和students.sql drop table students; drop table grades; create table grades( gid in ...

  3. MyBatis一对多映射简单查询案例(嵌套结果)

    一.案例描述 书本类别表和书本信息表,查询书本类别表中的某一记录,连带查询出所有该类别书本的信息. 二.数据库表格 书本类别表(booktypeid,booktypename) 书本信息表(booki ...

  4. MyBatis一对多映射简单查询案例(嵌套Mapper映射文件中的sql语句)

    一.案例描述 书本类别表和书本信息表,查询书本类别表中的某一记录,连带查询出所有该类别书本的信息. 二.数据库表格 书本类别表(booktypeid,booktypename) 书本信息表(booki ...

  5. mybatis一对多映射分页的问题

    一对多可能会出现分页错误 条数不对的问题 解决方法: 将主表分页查询一次 SELECT aa.id,aa.name,bb.name FROM (SELECT * from tab1 ORDER BY ...

  6. 33、mybatis(二)

    第十六章回顾SQL99中的连接查询 1)内连接 2)外连接 3)自连接 第十七章回顾hibernate多表开发 1)一对一 2)一对多 3)多对多 第十八章 mybatis一对一映射[学生与身份证] ...

  7. mybatis进阶

    1.mybatis一对一映射 Student--Card <?xml version="1.0" encoding="utf-8" ?> <! ...

  8. Mybatis学习 day02

    第十六章回顾SQL99中的连接查询 1)内连接 2)外连接 3)自连接 第十七章回顾hibernate多表开发 1)一对一 2)一对多 3)多对多 第十八章 mybatis一对一映射[学生与身份证] ...

  9. springboot学习——第二集:整合Mybaits

    1,Mybatis动态插入(insert)数据(使用trim标签):https://blog.csdn.net/h12kjgj/article/details/55003713 2,mybatis 中 ...

随机推荐

  1. 【转】分析.net中的object sender与EventArgs e

    源地址:http://blog.csdn.net/feihu19851111/article/details/7523118

  2. requests模块处理cookie,代理ip,基于线程池数据爬取

    引入 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的. 一.基于requests模块 ...

  3. 下载azure website的code

    1.登陆kudu直接下载. http://www.concurrency.com/blog/use-azure-kudu-debug-azure-websites/ 2.FTP链接拷贝(可以忽略) 3 ...

  4. 按钮重复点击问题 UIbutton

    .h #import <UIKit/UIKit.h> #import <objc/runtime.h> @interface UIControl (XY) @property ...

  5. class __init__()

    python 先定义函数才能调用 类是客观对象在人脑中的主观映射,生产对象的模板,类相当于盖房的图纸,生产工具的模具 模板 类:属性.方法 __init__() 这个方法一般用于初始化一个类但是 当实 ...

  6. css类选择器中 空格 逗号 啥都不填的区别及其他笔记

    .a.b 代表 一个元素上 同时 有 a 类 和 b 类 .a .b (中间有空格) 代表 .b 是 .a 的子元素选择. .a,.b 代表 class='a' 和 class='b' 都会被选择上.

  7. 网站安装 https 证书

    1.点击进入官网  数安时代 2.点击选择你需要的ssl 证书 3.点击进入选择 免费申请 ,填写你需要 安装 ssl 证书 的域名 4.根据你的需求选择,我这里选择的是 数安时代 ,接下来按照步骤操 ...

  8. 分享一个大型进销存供应链项目(多层架构、分布式WCF多服务器部署、微软企业库架构)

    项目源码下载:  WWW.DI81.COM 分享一个大型进销存供应链项目(多层架构.分布式WCF多服务器部署.微软企业库架构) 这是一个比较大型的项目,准备开源了.支持N家门店同时操作.远程WCF+企 ...

  9. 可持久化Treap 赛前摸鱼笔记

    1.基本结构 随机化工具 unsigned int SEED = 19260817; //+1s inline int Rand(){ SEED=SEED*1103515245+12345; retu ...

  10. 挑战程序设计竞赛 P131 区间DP

    书上好多题没补 PS.整个DP是根据Q来划分的,dalao的代码就是不一样啊 #include<bits/stdc++.h> #define rep(i,j,k) for(int i=j; ...