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

简介: MyBatis两张表字段名相同, 会导致bean属性都映射为第一个表的列,   解决方法: 通过设置别名的方式让其产生区别,如 select sk.

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相同,它会通过映射找到相应属性进行封装。

相关文章
|
SQL Java 数据库连接
认识Mybatis的关联关系映射,灵活关联表对象之间的关系
认识Mybatis的关联关系映射,灵活关联表对象之间的关系
185 0
|
存储 Java 数据库连接
【Mybatis】关系映射 表对象之间的关系
【Mybatis】关系映射 表对象之间的关系
164 0
|
XML Java 数据库连接
【MySQL用法】MyBatis 多对多 中间表插入数据,添加记录后获取主键ID
【MySQL用法】MyBatis 多对多 中间表插入数据,添加记录后获取主键ID
173 0
|
6月前
|
SQL Java 数据库连接
解决Mybatis当实体类中的属性名和表中的字段名不一致的问题
解决Mybatis当实体类中的属性名和表中的字段名不一致的问题
83 0
|
SQL Java 数据库连接
第一季:11MyBatis中当实体类中的属性名和表中的字段名不一样,怎么办【Java面试题】
第一季:11MyBatis中当实体类中的属性名和表中的字段名不一样,怎么办【Java面试题】
158 0
|
SQL Java 数据库连接
MyBatis 中数据库字段名与 MyBatis 字段名 / 属性名不一致,怎么解决?
MyBatis 中数据库字段名与 MyBatis 字段名 / 属性名不一致,怎么解决?
140 0
|
XML SQL 缓存
MyBatis 表连接查询写法|三种对应关系
MyBatis 表连接查询写法|三种对应关系
161 0
|
Java 数据库连接 数据库
【Mybatis】常见面试题:字段名和属性名不一致时三种处理方式
【Mybatis】常见面试题:字段名和属性名不一致时三种处理方式
|
SQL Java 数据库连接
【MyBatis】学习笔记11:解决字段名和属性的映射关系
【MyBatis】学习笔记11:解决字段名和属性的映射关系
276 0
|
SQL XML Java
SpringBoot 结合 Mybatis 实现创建数据库表
SpringBoot 结合 Mybatis 实现创建数据库表
846 0
SpringBoot 结合 Mybatis 实现创建数据库表