Mybatis 一对多 查询

项目中以前使用的是Hibernate执行多表之间的关系。

以此记录,一对多的使用方法

<!-- 发票记录返回参数 -->
<resultMap id="InvoicesRecoreMap" type="org.opsteel.wcyl.module.invoice.vo.InvoicesRecoreVo">
    <id column="ORDERNO" property="orderno"/>
    <result column="INVOICESTATUS" property="invoicestatus"/>
    <result column="INVOICENO" property="invoiceno"/>
    <result column="AMOUNT" property="amount"/>
    <result column="WEIGHT" property="weight"/>
    <!-- 一对多关系 -->
    <collection property="recoreDetailVos" javaType="ArrayList" column="orderno"
                ofType="org.opsteel.wcyl.module.invoice.vo.InvoicesRecoreDetailVo" select="getRecoreDetail"/>

</resultMap>
<!-- 某开票记录产品情况 -->
<select id="getInvoiceRecordByCompanyId" resultMap="InvoicesRecoreMap" parameterType="Map">
    select o.orderno,o.invoicestatus,
    oi.invoiceno,
    oi.amount,
    o.weight
    from WC_ORDER_INVOICE oi
    left join WC_ORDER o on o.orderno = oi.orderno
    left join WC_COMPANY_INVOICE ci on oi.invoiceid = ci.id
    <where>
        <if test="companyId != null and companyId != '' ">
            ci.companyid =#{companyId}
        </if>

        <if test="(invoicestatus != null and invoicestatus != '') or invoicestatus==0 ">
            and o.invoicestatus = #{invoicestatus}
        </if>
    </where>
</select>

<!-- 查询开票产品详细 -->
<select id="getRecoreDetail" resultType="org.opsteel.wcyl.module.invoice.vo.InvoicesRecoreDetailVo">
    select od.typename,od.specname,od.theloanamount,od.weight
    from WC_ORDERDETAIL od  where  od.orderno=#{orderno}
</select>


详细可见以下地址文档查看更多的用法

http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值