场景:

  • 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. 泛型2(lambda表达式/参数绑定)

    lambda 表达式: Lambda表达式完整的声明格式如下: [capture list] (params list) mutable exception-> return type { fu ...

  2. 4.SVM

  3. Python DataFrame 如何删除原来的索引,重新建立索引

    删除行索引重排: ser.reset_index(drop = True) df.reset_index(drop = True) ---------------------------------- ...

  4. 《Andrew Ng深度学习》笔记1

    深度学习概论 1.什么是神经网络? 2.用神经网络来监督学习 3.为什么神经网络会火起来? 1.什么是神经网络? 深度学习指的是训练神经网络.通俗的话,就是通过对数据的分析与计算发现自变量与因变量的映 ...

  5. 剩下的树 THU 机试

    链接:https://www.nowcoder.com/questionTerminal/f5787c69f5cf41499ba4706bc93700a2来源:牛客网 有一个长度为整数L(1<= ...

  6. flex 实例Demo

    Flex 页面布局 很方便 快捷 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  7. 什么是redis?Reids的特点是什么?Redis支持的数据类型有哪些?

    首先,分布式缓存框架 可以 看成是nosql的一种 (1)什么是redis? redis 是一个基于内存的高性能key-value数据库. (有空再补充,有理解错误或不足欢迎指正) (2)Reids的 ...

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

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

  9. 【算法笔记】B1035 插入与归并

    1035 插入与归并 (25 分) 根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置.如此迭代直 ...

  10. POJ_1733 Parity game 【并查集+离散化】

    一.题面 POJ1733 二.分析 该题与之前做过的带权并查集的唯一区别就是数组开不下.所以需要用离散化的思想,只取那些有用的点来解决该问题. 离散化其实就是把这些所有用到的点收集后,去重,再排一下序 ...