mybatis一对多映射
场景:
- 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一对多映射的更多相关文章
- MyBatis 一对多映射
From<MyBatis从入门到精通> <!-- 6.1.2.1 collection集合的嵌套结果映射 和association类似,集合的嵌套结果映射就是指通过一次SQL查询将所 ...
- mybatis一对多映射【班级与学生】
1)如图 2)创建grades.sql和students.sql drop table students; drop table grades; create table grades( gid in ...
- MyBatis一对多映射简单查询案例(嵌套结果)
一.案例描述 书本类别表和书本信息表,查询书本类别表中的某一记录,连带查询出所有该类别书本的信息. 二.数据库表格 书本类别表(booktypeid,booktypename) 书本信息表(booki ...
- MyBatis一对多映射简单查询案例(嵌套Mapper映射文件中的sql语句)
一.案例描述 书本类别表和书本信息表,查询书本类别表中的某一记录,连带查询出所有该类别书本的信息. 二.数据库表格 书本类别表(booktypeid,booktypename) 书本信息表(booki ...
- mybatis一对多映射分页的问题
一对多可能会出现分页错误 条数不对的问题 解决方法: 将主表分页查询一次 SELECT aa.id,aa.name,bb.name FROM (SELECT * from tab1 ORDER BY ...
- 33、mybatis(二)
第十六章回顾SQL99中的连接查询 1)内连接 2)外连接 3)自连接 第十七章回顾hibernate多表开发 1)一对一 2)一对多 3)多对多 第十八章 mybatis一对一映射[学生与身份证] ...
- mybatis进阶
1.mybatis一对一映射 Student--Card <?xml version="1.0" encoding="utf-8" ?> <! ...
- Mybatis学习 day02
第十六章回顾SQL99中的连接查询 1)内连接 2)外连接 3)自连接 第十七章回顾hibernate多表开发 1)一对一 2)一对多 3)多对多 第十八章 mybatis一对一映射[学生与身份证] ...
- springboot学习——第二集:整合Mybaits
1,Mybatis动态插入(insert)数据(使用trim标签):https://blog.csdn.net/h12kjgj/article/details/55003713 2,mybatis 中 ...
随机推荐
- 【转】C# String 与 Char[] 数组 相互转换
源地址:http://blog.csdn.net/razilfelix/article/details/52289663 string 转换成 Char[] string ss = "abc ...
- codevs 3044 矩形面积求并
3044 矩形面积求并 题目描述 Description 输入n个矩形,求他们总共占地面积(也就是求一下面积的并) 输入描述 Input Description 可能有多组数据,读到n=0为止(不 ...
- mysql设计-基本操作
mysql 设计 1)服务器管理 2)数据库管理 3)表管理 4)字段管理 5)索引管理 操作 1)sql语句 2)单表操作 3)多表操作 索引 记录 字段 mysam innodb ibdata1 ...
- iis 重启命令
打开IIS配置窗口的CMD命令:开始---运行---CMD----输入inetmgr 直接使用CMD我们可以操作很多事情,比如启动IIS,重启IIS,停止IIS 重启IIS服务器,开始->运行 ...
- CBoard 看板参数管理
看板设计采用简单Row+Column布局模式,每行总长度为12,每列对应一个图表,行高度可以调节,列高度集成行高 左边栏看板分类中,我的看板为当前用户创建的看板,普通看板分类通过分类管理维护,保存看板 ...
- asp.net MVC中的@model与Model
asp.net MVC中的@model与Model https://blog.csdn.net/ydm19891101/article/details/44301201 在MVC的实际使用中,我们经常 ...
- node.js express 启用 https
服务端和客户端各有一对公钥和私钥,使用公钥加密的数据只能用私钥解密,建立https传输之前,客户端和服务端互换公钥.客户端发送数据前使用服务端公钥加密,服务端接收到数据后使用私钥解密,反之亦如此. 公 ...
- C++_异常2-返回错误码
一种比异常终止更灵活的办法是,使用函数的返回值来指出问题. 例如,ostream类的get(void)成员通常返回下一个输入字符的ASCII码,但到达文件尾时,将返回EOF. 对hmean()来说,这 ...
- LCT小小结
模板题P3690 基础题P3203[HNOI2010]弹飞绵羊 \(access\)是搞出一条端点为\(x,y\)的路径 , 且维护的是实子树的信息 . 由于题目比较简单 , \(access\)时还 ...
- 关于webpack 以及 webpack配置和常用插件的学习记录 (1)
主要概念: Entry : webpack的入口,构建的第一步从entry开始. Output : 输出,经过webpack处理后的得到最终想要的代码. Loader : 模块转换工具,把 ...