• 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>

    我在网上还是找了挺多的解决方案的,但是似乎大部分都不太管用,最后我看见了别人用注解来解决这个问题的,所以我也用这种方式来解决,截图如下:

    接口中的方法:

    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>

    最关键的是,让他们每个都对号入座。就不存在所谓的对象与属性混乱了,注解的方式还是挺好使的。大家要是还有比我这个更好的办法或有什么不懂的地方,欢迎大家一起讨论。

  • 相关阅读:
    2012航拍香港
    2012航拍香港
    论玩镜头的三种境界[转自无忌fruitbear]
    论玩镜头的三种境界[转自无忌fruitbear]
    认识镜头的MTF值
    认识镜头的MTF值
    宾得十大名镜
    宾得十大名镜
    两个输入通道怎么判断通道顺序
    增加新功能和未知的修改操作
  • 原文地址:https://www.cnblogs.com/quliang/p/7205727.html
Copyright © 2020-2023  润新知