mybatis之多個對象自動裝配問題

由於業務的須要,因此我在一個方法中植入三個對象,可是mybatis並無自動裝配,結果並非我想的那麼美好,仍是報錯了。報錯截圖以下:mybatis

<select id="GetOneBillPageData" resultMap="billMapper">
        select smbms_bill.`billCode`,smbms_bill.`id`,
        smbms_bill.`isPayment`,smbms_bill.`totalPrice`,
        smbms_bill.`creationDate`,smbms_provider.`proName`
        from smbms_bill,smbms_provider
        <where>
            smbms_provider.`id`=smbms_bill.`pid`
            <if test="productName!=null">
                AND productName like concat('%',#{productName},'%')
            </if>
            <if test="isPayment!=null">
                AND isPayment=#{bill.isPayment}
            </if>
            <if test="proName!=null">
                AND proName=#{proName}
            </if>
        </where>
        limit #{pageIndex},#{pageSize}
    </select>

我在網上仍是找了挺多的解決方案的,可是彷佛大部分都不太管用,最後我看見了別人用註解來解決這個問題的,因此我也用這種方式來解決,截圖以下:app

接口中的方法:ide

public List<smbms_bill> GetOneBillPageData(@Param("provider") smbms_provider Provider, @Param("bill") smbms_bill bill, @Param("page") Page page);
<select id="GetOneBillPageData" resultMap="billMapper">
        select smbms_bill.`billCode`,smbms_bill.`id`,
        smbms_bill.`isPayment`,smbms_bill.`totalPrice`,
        smbms_bill.`creationDate`,smbms_provider.`proName`
        from smbms_bill,smbms_provider
        <where>
            smbms_provider.`id`=smbms_bill.`pid`
            <if test="bill.productName!=null">
                AND smbms_bill.productName like concat('%',#{bill.productName},'%')
            </if>
            <if test="bill.isPayment!=null">
                AND isPayment=#{bill.isPayment}
            </if>
            <if test="provider.proName!=null">
                AND proName=#{provider.proName}
            </if>
        </where>
        limit #{page.pageIndex},#{page.pageSize}
    </select>

最關鍵的是,讓他們每一個都對號入座。就不存在所謂的對象與屬性混亂了,註解的方式仍是挺好使的。你們要是還有比我這個更好的辦法或有什麼不懂的地方,歡迎你們一塊兒討論。spa

相關文章
相關標籤/搜索