MyBatis两张表字段名相同产生的问题

MyBatis两张表字段名相同, 会导致bean属性都映射为第一个表的列,

解决方法:

通过设置别名的方式让其产生区别,如

<select id="queryBySekillId" resultMap="successKilled">
 
        select
            sk.seckill_id  "seckill_id",
            sk.user_phone  "user_phone",
            sk.state  "state",
            sk.create_time  "create_time",
            s.seckill_id  "seckill_id",
            s.name  "name",
            s.number  "number",
            s.start_time  "start_time",
            s.end_time  "end_time",
            <strong>s.create_time  "screate_time"</strong>
        from success_killed sk
        inner join seckill s
        on sk.seckill_id = s.seckill_id
        where sk.seckill_id = #{seckill_id} ;
 
</select>

  上 success_killed表和seckill表中有相同字段 create_time (id字段其实确实是相同的故在此忽略),通过将表seckill的create_time字段命名为screate_time用以区别。

<resultMap type="Seckill" id="seckill">
        <id column="seckill_id"  property="seckill_id"/>
        <result column="name" property="name"/>
        <result column="number" property="number"/>
        <result column="start_time" property="start_time" />
        <result column="end_time"  property="end_time"/>
        <result column="screate_time"  property="create_time" /> 
</resultMap>

  同时将 resultMap中该段的 column 属性该为 screate_time.故只要让查询出的字段名与column相同,它会通过映射找到相应属性进行封装。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杂烩

canal安装

在mysql中 配置canal数据库管理用户,配置相应权限(repication权限)

932
来自专栏乐沙弥的世界

Oracle 闪回特性(FLASHBACK DATABASE)

闪回技术通常用于快速简单恢复数据库中出现的认为误操作等逻辑错误,从闪回的方式可以分为基于数据库级别闪回、表级别闪回、事务

1074
来自专栏互联网杂技

mysql命令之对用户,库,表操作--基础教程(三)

创建用户: 进入在root用户进行操作: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456'; 授权...

34111
来自专栏zcqshine's blog

PHP mysqli_multi_query 连续执行的坑

3506
来自专栏别先生

主要是解决,作为一个数据共享的数据库,存在的数据库统计,然后将计算的数据量输出到自己使用的数据库,进行主页面展示。

1、主要是解决,作为一个数据共享的数据库,存在的数据库统计,然后将计算的数据量输出到自己使用的数据库,进行主页面展示。

692
来自专栏大白虾谈架构

mysql 远程连接数据库的二种方法

5433
来自专栏Linyb极客之路

Mysql慢查询日志的使用 和 Mysql的优化

1、临时开启慢查询日志(如果需要长时间开启,则需要更改mysql配置文件,第6点有介绍)

722
来自专栏喵了个咪的博客空间

原 EMQ百万级MQTT消息服务(ACL鉴权)

虽然EMQ已经搭建起来了,但是投入到业务使用中还面临着一些问题,当然MQTT设计之初也考虑了这一点,比如不是任何一个客户端都能链接到服务器和限制客户端能够对to...

4264

在CentOS 6上使用Postfix,Dovecot和MySQL发送电子邮件

Postfix 邮件传输代理(MTA)是一种高性能的开源电子邮件服务器系统。本指南将帮助你在CentOS 6 Linode上运行 Postfix,使用 Dove...

1645
来自专栏WindCoder

Discuz!X3.1QQ互联Unknown column 'conuintoken' in 'field list'的解决办法

881

扫码关注云+社区