多表联查时数据库有重复字段名时打印为null

来源:4-2 分页查询

扶阿斗的人

2019-08-29 10:55

老师,我数据库user表有个name,car表也有个name,联查的泛型是UserCarVO实体类,类里一个属性是name,一个是carName,

在UserMapper extends BaseMapper<User>接口中的

查询语句是@Select("select u.*,c.name from user u inner join car c on c.owner_id = u.my_id ${ew.customSqlSegment}")。

IPage<UserCarVO> selectUserPage(Page<UserCarVO> page, @Param(Constants.WRAPPER) Wrapper<UserCarVO> wrapper);

为了最后让实体的carName对应c.name,我在carName上注解@TableField("c.name"),但是最后只能打印出用户的name,而carName为null,(我把数据库Car表字段改为car_name的话,就能打印出),请问怎样让注解生效?求老师解答,纠结好多个小时了,查论坛查百度的例子都没有重复字段。。。

写回答 关注

1回答

  • 老猿
    2019-08-29 11:52:29
    已采纳

    同学,这个有解决办法,你给c.name在sql中设置别名就可以了,这样写elect u.*,c.name car_name from user u inner join car c on c.owner_id = u.my_id ${ew.customSqlSegment}。正常的话,就会把值存到你的VO中。

    老猿 回复扶阿斗的人

    能解决你的问题就好,你说的这种情况如果不行的话,我感觉是@TableField要写在表对应的实体类的属性上才会生效,MP的源代码,我也没太研究过,对底层原理不是太了解,等以后我研究源码时,研究明白了这个问题,再答复你。

    2019-08-29 14:45:58

    共 2 条回复 >

MyBatis-Plus入门

MyBatis-Plus框架入门必学课程!

56140 学习 · 381 问题

查看课程

相似问题