国产精品chinese,色综合天天综合精品网国产在线,成午夜免费视频在线观看,清纯女学生被强行糟蹋小说

    <td id="ojr13"><tr id="ojr13"><label id="ojr13"></label></tr></td>
        • <source id="ojr13"></source>
            <td id="ojr13"><ins id="ojr13"><label id="ojr13"></label></ins></td>

            Article / 文章中心

            MyBatisPlus中使用SELECT關(guān)聯(lián)查詢時(shí)未添加別名報(bào)異常的問題分析與修復(fù)

            發(fā)布時(shí)間:2021-11-25 點(diǎn)擊數(shù):896

            問題

            • 在MyBatisPlus中要使用到關(guān)聯(lián)查詢時(shí),如果查詢的主表字段不使用別名,會(huì)出現(xiàn)異常:
            Column 'id' in field list is ambiguous

            原因

            • 列ID在字段列表中重復(fù),其實(shí)就是兩張表有相同的字段,但是使用時(shí)表字段的名稱前沒有加表名,導(dǎo)致指代不明,前面加上前綴別名就沒問題

            新問題

            • 由于xml中已經(jīng)用SQL封裝好通用結(jié)果列,引用結(jié)果列方法:
            <include refid="Base_Column_List"></include>
            • 那么,如何給結(jié)果列添加別名呢?

            解決辦法

            方法一

            • 在定義結(jié)果列的SQL語句中為使用了相同表字段的字段添加別名
            • 這樣之后使用include標(biāo)簽引用時(shí)就是帶別名引用

            方法二

            • 使用include標(biāo)簽的property屬性,為include標(biāo)簽中的字段添加別名
            • 使用 ${ } 占位符參數(shù)化的,占位符也可以被用在refid 屬性里.不可以使用 #{ }
            • 此處的參數(shù)不是調(diào)用時(shí)傳進(jìn)來的,不同的屬性值通過包含的實(shí)例而變化
            <sql id="userColumns"> ${alias}.id,
                username,
                password </sql> <select id="selectUsers" resultType="map"> select <include refid="userColumns"><property name="alias" value="t1"/></include>, <include refid="userColumns"><property name="alias" value="t2"/></include> from some_table t1
                cross join some_table t2 </select>

            總結(jié)

            • 在mybatis的定義中 ,sql標(biāo)簽節(jié)點(diǎn)是用來定義可重用的SQL代碼段
            • 可使用include標(biāo)簽節(jié)點(diǎn)來包含在其它語句里
            • 在include標(biāo)簽中可以使用property標(biāo)簽,將屬性包含進(jìn)來