Mybatis高级功能

应用场景:
应用所取的结果集中需要嵌入别的SQL的结果集。


<resultMap type="com.kevin.wallet.dto.CardsDetailResponse" id="cardsDetailResponse">
<result property="walletID" column="wallet_id"/>
<result property="totalAmount" column="totalAmount"/>
<result property="pageNumber" column=""/>
<result property="totalNumber" column="totalNumber"/>
[color=red]<association property="bailianAmount" column="{id=WALLET_ID}" select="getBailianAmount" />
<association property="okAmount" column="{id=WALLET_ID}" select="okAmount" />[/color]
[color=yellow]<collection property="cards" ofType="com.kevin.wallet.dto.ListCardInforResponse" >
<result property="cardNo" column="CARD_ID"/>
<result property="cardName" column="CARD_NAME"/>
<result property="balanceValue" column="BALANCE_VALUE"/>
<result property="validateTill" column="FROZEN_AT"/>
<result property="cardType" column="TYPE"/>
<result property="isForbidden" column="IS_FORBIDDEN"/>
<result property="alias" column="CARD_ALIAS"/>
<result property="status" column="STATUS"/>
<result property="order" column="CARD_ORDER"/>
</collection>[/color]

</resultMap>



<select id="getBailianAmount" parameterType="java.util.Map" resultType="java.math.BigDecimal">

SELECT
SUM(BALANCE_VALUE) as BAILIANAMOUNT
FROM(
SELECT
*
FROM
AVALIABLE_MEMBER_CARD member
WHERE
member.WALLET_ID = [color=red]#{id}[/color]
UNION
SELECT
*
FROM
AVALIABLE_PRODUCT_CARD product
where
product.WALLET_ID = [color=red] #{id}[/color]
)where TYPE=1 or TYPE=3
GROUP BY WALLET_ID

</select>


[b]association [/b]是对应数据库中一对一的关系,它会将getBailianAmount sql语句的返回值赋给bailianAmount这个属性。column这个属性用于设置getBailianAmount sql语句的传入参数。[color=red]column="{id=WALLET_ID}" [/color]意思是将WALLET_ID列作为getBailianAmount sql语句的参数,id对应map的key, sql语句通过#{id}来获取该key的值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值