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>
最关键的是,让他们每个都对号入座。就不存在所谓的对象与属性混乱了,注解的方式还是挺好使的。大家要是还有比我这个更好的办法或有什么不懂的地方,欢迎大家一起讨论。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步