您的位置:首页 > 其它

Mybatis 一对多 查询

2017-04-20 20:23 246 查看
项目中以前使用的是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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis 一对多