场景:

  • 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. 【arc074e】RGB Sequence dp

    Description ​ 丰泽爷今天也在愉快地玩Minecraft! ​ 现在丰泽爷有一块1∗N1∗N的空地,每个格子按照顺序标记为11到NN.丰泽爷想要在这块空地上铺上红石块.绿宝石块和钻石块作为 ...

  2. vim文本编辑

    6.1 vi/vim 的使用 基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),插入模式(Insert mode)和底线命令模式(Last line mode). 6. ...

  3. 微信小程序HTTPS - cenos apache 下安装SSL证书

    1.yum install mod_ssl 2.接下来,我们需要创建一个新目录,我们将存储服务器密钥和证书 mkdir /root/ssl 3.vi /etc/httpd/conf.d/ssl.con ...

  4. 常用跨平台IDE如何添加main函数的参数并正确执行

    1. Eclipse-cdt如何添加main函数参数: 打开eclipse,新建工程.新建源文件,此处以C语言为例,写入代码如下: #include <stdio.h> //int arg ...

  5. 关于运行robot framework 报错解决方法,ModuleNotFoundError: No module named 'robot'

    报错: command: pybot.bat --argumentfile c:\users\76776\appdata\local\temp\RIDEiw0utf.d\argfile.txt --l ...

  6. AngularJS 1.x系列:AngularJS服务-Service

    1. AngularJS服务 AngularJS可注入类型包括:Service.Factory.Provider.Value及Constant. 2. Service AngularJS Servic ...

  7. [Python]打印a..z的字符

    import string print string.letters[0:26]

  8. SGU - 495 概率DP

    题意:n个带礼物的盒子和m个人,每个人拿一个盒子并放回,如果里面有礼物就拿走(盒子还是留下),问m个人带走礼物的期望 #include<iostream> #include<algo ...

  9. HTML5必须知道的那些事

    [转自] http://www.cnblogs.com/hamy/archive/2012/02/21/2362110.html 再普及一次HTML5基础,HTML5必须知道的那些事,HTML5扫盲. ...

  10. Spring property文件配置方法以及如何与工程分离

    1,Spring使用property文件作为配置源    工程中难免出现一些需要每次部署都需要配置的参数,如数据源连接参数等,测试环境跟实际运行环境是不一样的.    使用spring框架的话,这些参 ...