多表聯(lián)查時(shí)數(shù)據(jù)庫(kù)有重復(fù)字段名時(shí)打印為null
老師,我數(shù)據(jù)庫(kù)user表有個(gè)name,car表也有個(gè)name,聯(lián)查的泛型是UserCarVO實(shí)體類(lèi),類(lèi)里一個(gè)屬性是name,一個(gè)是carName,
在UserMapper extends BaseMapper<User>接口中的
查詢(xún)語(yǔ)句是@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);
為了最后讓實(shí)體的carName對(duì)應(yīng)c.name,我在carName上注解@TableField("c.name"),但是最后只能打印出用戶(hù)的name,而carName為null,(我把數(shù)據(jù)庫(kù)Car表字段改為car_name的話(huà),就能打印出),請(qǐng)問(wèn)怎樣讓注解生效?求老師解答,糾結(jié)好多個(gè)小時(shí)了,查論壇查百度的例子都沒(méi)有重復(fù)字段。。。
2019-08-29
同學(xué),這個(gè)有解決辦法,你給c.name在sql中設(shè)置別名就可以了,這樣寫(xiě)elect u.*,c.name car_name?from user u inner join car c on c.owner_id = u.my_id ${ew.customSqlSegment}。正常的話(huà),就會(huì)把值存到你的VO中。