sql語句正確mybatis查找不出結果不報錯----映射關係不能加表名.列名

問題描述: 

項目中需要多表查詢時相同的列起了別名, 在mybatis中查詢無法得到left join的表中對應信息, 只有主表的信息

在數據庫中直接測試sql語句排除了語句問題, 也沒有報錯, 所以不是哪裏敲錯了 

最後關注在別名的問題上, 發現mybatis的映射關係中列名有別名必須用別名, 不能用表名. 列名的形式, 否則不會報錯但就是查詢不到該表的結果

省略了很多無關列, 用一列說明問題:

 

選擇列時起了別名: 

select
    sold_out.purchase_id AS soldOutPurchaseId

 MYBATIS中直接sql語句 別名和表名.列名都可以用

from order_list
LEFT JOIN sold_out ON order_list.id = sold_out.purchase_id

映射關係:

正確:

<resultMap id="AllResultMap" type="com.xxx.OrderInfoForm" >
    <result column="productInfoId" property="productInfoId" jdbcType="INTEGER" />
<resultMap>

錯誤: 

<resultMap id="AllResultMap" type="com.xxx.OrderInfoForm" >
    <result column="sold_out.purchase_id" property="productInfoId" jdbcType="INTEGER" />
<resultMap>

難受的是沒有報錯, 不說找不到列啥的, 只是鏈接的表信息查詢不出 , 需要逐個排查

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章