MyBatis 在resultMap中使用association但是没有指定id
情景描述:
resultMap中,如果不指定id列,在映射中同时存在result 和association,如果表中映射过的字段 有连续的非空重复值,那么存在重复值的行不会被加入结果集中。
JavaBean(省略getter setter):
public class Account {
/** 属性账目编号 */
private Long id;
/** 属性物料编码相关信息 */
private Item item;
/**
* 属性单据类型 0 出库,1入库 ,9:默认(出现9则是异常)
*/
private int type = 9;
/** 属性数量 */
private Double number;
/** 属性归属单位 */
private String department;
/** 属性操作员 */
private String operator;
/** 属性经办人 */
private String handler;
/** 属性出入库原因 */
private String reason;
/** 属性出入库时间 */
private Date optTime;
/** 属性录入时间 */
private Date createTime = Calendar.getInstance().getTime();
/** 属性最后修改时间 */
private Date updateTime;
/** 属性最后修改人 */
private User updater;
}
Mapper:
<resultMap type="Account"id="accountMap"autoMapping="true">
<id column ="id" property="id"/>
<result column ="opt_time" property="optTime"/>
<result column ="create_time" property="createTime"/>
<result column ="update_time" property="updateTime"/>
<association property ="item" javaType="Item">
<result column ="item_code" property="code"/>
<result column ="item_name" property="name"/>
<result column ="item_model" property="model"/>
<result column ="unit" property="unit"/>
</association >
</resultMap >
SQL:
select * from t_account;
在数据库中的查询结果(部分):
1、图中涂红的部分修改过,原来的值与上一行相同,都是 00:00:00。
2、修改以前,程序查询结果中只有id<=38的数据,因为id=37行(以下简称37行)与36行的opt_time字段不同,38行与37行的create_time、update_time字段不同,而39行与38行的这三个映射字段的值完全相同
3、修改后,查询结果中39、40行能显示了,其后的数据不能显示
4、在Mapper中加入id列设置后,所有数据行都能显示了。
---------------------
作者:sailei
来源:CSDN
原文:https://blog.csdn.net/sailei/article/details/51158462
版权声明:本文为博主原创文章,转载请附上博文链接!
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 十一、详解面向对象
- 十二、面向对象实战之封装拖拽对象
- 数组reduce方法的高级用法
- 十七、详解 ES6 Modules
- 超干货!为了让你彻底弄懂 MySQL 事务日志,我通宵肝出了这份图解!
- 什么情况下不能使用最坏情况评估算法的复杂度?
- Python运算符
- kubeadm高可用集群意外删除一mater节点,重新加入失败
- Chevereto——简介及安装
- Typecho开启伪静态并隐藏index.php
- Prism代码高亮Pjax重载函数
- Qt示例-AnalogClock-自定义窗体-使用QPainter的转换和缩放特性简化绘图
- 2019-12-27-traefik
- 2019-12-05-eck-qustion
- 聊聊dubbo-go的ConsumerSignFilter