关于IBAITS 中的 group by

    <resultMap id="gecStrategyRsWithClientName" class="gecStrategyForClone" groupBy="strategyId">
        <result property="strategyId" column="STRATEGY_ID"/>
        <result property="clientId" column="CLIENT_ID"/>
        <result property="strategyName" column="STRATEGY_NAME"/>
        <result property="clientShortName" column="CLIENT_SHORT_NAME"/>                                            
    </resultMap>

 

    <select id="getExistStrategiesForClone" resultMap="gecStrategyRsWithClientName">
        SELECT
            st.STRATEGY_ID,
            st.CLIENT_ID,
            st.STRATEGY_NAME,    
            c.CLIENT_SHORT_NAME   

        FROM GEC_STRATEGY st
        LEFT JOIN GEC_CLIENT c
        ON st.CLIENT_ID = c.CLIENT_ID
        LEFT JOIN GEC_FUND fund
        ON st.STRATEGY_ID = fund.STRATEGY_ID
        WHERE  st.STATUS != 'D'
        ORDER BY lower(c.CLIENT_SHORT_NAME)
    </select>   

 

执行结果是:

 

25    2    130-30    SANTABARB
21    21    130-30    AJO
23    3    130-30    ANALYTIC
24    3    KFC    ANALYTIC
26    2    KFC    SANTABARB
22    21    KFC    AJO

 

如果没有groupBy="strategyId",则结果是

 

25    2    130-30    SANTABARB
21    21    130-30    AJO
23    3    130-30    ANALYTIC
24    3    KFC    ANALYTIC
26    2    KFC    SANTABARB
22    21    KFC    AJO
22    21    KFC    AJO
22    21    KFC    AJO

 

 

如果一个对象如 GecManualBorrow

 

private BigDecimal reclaimRate;

private BigDecimal overseaTaxPer;

private BigDecimal domesticTaxPer;

private BigDecimal prepayRate;

private BigDecimal minimumFee;

private String positionFlag;

private String commentTxt;

private List<GecManualBorrowAllocation> borrowAllocations;

 

 

<resultMap id="manualBorrowsRs" class="gecManualBorrow" groupBy="borrowId">

<result property="borrowId" column="borrow_id"/>

<result property="assetCode" column="cusip"/>

<result property="brokerCd" column="broker_cd"/>

。。。。

<result property="borrowAllocations" resultMap="GEC.borrowAllocations"/>

 

 

<resultMap id="borrowAllocations" class="gecManualBorrowAllocation">

<result property="counterpartyCd" column="COUNTERPARTY_CD"/>

<result property="prepayDate" column="loan_prepay_date"/>

<result property="netDividend" column="loan_net_div"/>

</resultMap>

 

 

如果没有group by , 则出来的结果中“borrowAllocations” 可能不是个List, 而是一个borrow id 对应一个borrowAllocations, 而正确结果应该是一个borrow id 对应一个 List<borrowAllocations>


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值