mybatis 关联查询,注意事项

1、异常一:org.mybatis.spring.MyBatisSystemException:

原因:

List<ProductVO> productListPage(IPage page, ProductVO product, AddressVO address);

就是因为当参数大于一个的时候,需要加@param注解.

List<ProductVO> productListPage(@Param("page") IPage page, @Param("product") ProductVO product,@Param("address") AddressVO address);

2.异常二:nested exception is org.apache.ibatis.binding.BindingException

在xml文件中,如果不用

<if test="subtype != null">
    and sp.subtype = #{subtype}
</if>

则报错,需要加上对应定义好的param,如下

<if test="product.subtype != null">
    and sp.subtype = #{product.subtype}
</if>

3.关联查询,一对一,一对多关联

<resultMap id="resultMap" type="com.xx.vo.ProductVO" >
    <id column="id" property="id"/>
    <result column="name" property="name"/>
    <result column="type" property="type"/>
    <!--一对一-->
    <association property="address" javaType="com.xx.vo.AddressVO">
        <id column="ref_id" property="id"/>
        <result column="country" property="country"/>
        <result column="province" property="province"/>
        <result column="city" property="city"/>
        <result column="district" property="district"/>
        <result column="addr_detail" property="addrDetail"/>
        <result column="postal_code" property="postalCode"/>
        <result column="longitude" property="longitude"/>
        <result column="latitude" property="latitude"/>
        <result column="is_deleted" property="isDeleted"/>
    </association>
    <!--一对多-->
    <collection property="productVal" javaType="ArrayList" ofType="com.xx.vo.ProductValVO">
        <result column="spec_value" property="specValue"/>
    </collection>
    <!--一对多-->
    <collection property="specDef" javaType="ArrayList" ofType="com.xx.vo.SpecDefVO">
        <result column="def_name" property="defName"/>
    </collection>
</resultMap>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值