工作中ibatis中的連表查詢及in()的使用案例

public class CbExchangeOrderArr extends BaseBean implements Serializable { 

    /** 
     * 
     */ 
    private static final long serialVersionUID = -1213585508833130943L; 
    /** 
     * 訂單號 
     */ 
    private Long              id; 
    /** 
     * 創建時間 
     */ 
    private Date              createTime; 
    /** 
     * 修改時間 
     */ 
    private Date              modifyTime; 
    /** 
     * 有效期截止時間 
     */ 
    private Date              expirationTime; 
    /** 
     * 商戶端系統的訂單號/流水號 
     */ 
    private String            orderIdIn3rdSys; 
    /** 
     * 批次號 
     */ 
    private String            batchNumber; 
    /** 
     * 子批次號 
     */ 
    private String            subBatchNumber; 
    /** 
     * 付款人ID 
     */ 
    private String            payerId; 
    /** 
     * 是否商戶 
     */ 
    private String            isMerchant; 
    /** 
     * 付款人信息 
     */ 
    private Long              payerInfoId; 
    /** 
     * 源幣種 
     */ 
    private String            sourceCurrency; 
    /** 
     * 源金額 
     */ 
    private BigDecimal        sourceAmount; 
    /** 
     * 源實付金額 
     */ 
    private BigDecimal        sourceActualAmount; 
    /** 
     * 匯率 
     */ 
    private String            exchangeRate; 
    /** 
     * 收款人ID 
     */ 
    private Long              payeeId; 
    /** 
     * 是否商戶 
     */ 
    private String            isMerchantPayee; 
    /** 
     * 收款人信息 
     */ 
    private Long              payeeInfoId; 
    /** 
     * 目的幣種 
     */ 
    private String            targetCurrency; 
    /** 
     * 目的金額 
     */ 
    private BigDecimal        targetAmount; 
    /** 
     * MCC code 
     */ 
    private String            mccCode; 
    /** 
     * 狀態, invalid:無效 valid:有效 
     */ 
    private String            status; 
    /** 
     * 匯兌狀態 
     */ 
    private String            exchangeStatus; 
    /** 
     * 付款狀態 
     */ 
    private String            paymentStatus; 
    /** 
     * 是否被處理,Y:是 ,N:否 
     */ 
    private String            isProcessed; 
    /** 
     * 是否手工退款 紅衝單標識 Y:是 N:否 
     */ 
    private String            isManualRefund; 
    /** 
     * 付款人類型 
     */ 
    private String            payerType; 
    /** 
     * 收款人類型 
     */ 
    private String            payeeType; 

    /** 
     * 冗餘收款人表中的姓名 
     */ 
    private String name; 
    /** 
     * 冗餘收款人表中的銀行賬號 
     */ 
    private String bankAccount; 
     
  

    /** 
     * 國家代碼 
     */ 
    private String            countryCode; 

    /** 
     * 證件類型 
     */ 
    private String            idType; 

    /** 
     * 證件號 
     */ 
    private String            idNumber; 

    /** 
     * 收款人地址 
     */ 
    private String            address; 

    /** 
     * 收款公司名稱 
     */ 
    private String            companyName; 

    /** 
     * 收款銀行名稱 
     */ 
    private String            bankName; 

    /** 
     * 收款行國別 
     */ 
    private String            bankCountryCode; 

    /** 
     * 收款行地址 
     */ 
    private String            bankAddress; 

    /** 
     * swift code 
     */ 
    private String            swiftCode; 

    /** 
     * 大額行號 
     */ 
    private String            cnapsCode; 

    /** 
     * bic 
     */ 
    private String            bic; 

    /** 
     * iban 
     */ 
    private String            iban; 
    /** 
     * 用戶在商戶下的賬戶 
     */ 
    private String            account; 

    /** 
     * 所屬商戶號下的用戶賬號 
     */ 
    private String            userIdIn3rdSys; 
    /** 
     * 賬戶類型(c:個人、b企業) 
     */ 
    private String            bankAccountType; 
     
    private String[] orderArray; 
     








































































































































































































    private List<String> idList;

下面是get set方法就不貼出來了,

<typeAlias type="com.lianpay.lcpay.cb.exchangeorderserver.share.domain.CbExchangeOrderArr"
        alias="CbExchangeOrderArr" />

    <resultMap id="CbExchangeOrderArr" class="CbExchangeOrderArr">
        <result column="ID" property="id" jdbcType="DECIMAL" />  
        <result column="ORDER_ID_IN3RD_SYS" property="orderIdIn3rdSys"
            jdbcType="VARCHAR" />
        <result column="PAYEE_INFO_ID" property="payerInfoId" jdbcType="DECIMAL" />
         
        <result column="SOURCE_CURRENCY" property="sourceCurrency"
            jdbcType="VARCHAR" />
        <result column="SOURCE_AMOUNT" property="sourceAmount"
            jdbcType="DECIMAL" />
        <result column="EXCHANGE_RATE" property="exchangeRate"
            jdbcType="VARCHAR" />
        <result column="PAYER_ID" property="payeeId" jdbcType="DECIMAL" />
        <result column="TARGET_CURRENCY" property="targetCurrency"
            jdbcType="VARCHAR" />
        <result column="TARGET_AMOUNT" property="targetAmount"
            jdbcType="DECIMAL" />
        <result column="MCC_CODE" property="mccCode" jdbcType="VARCHAR" />
        <result column="NAME" property="name" jdbcType="VARCHAR" />
        <result column="COUNTRY_CODE" property="countryCode" jdbcType="VARCHAR" />
        <result column="BANK_ACCOUNT_TYPE" property="bankAccountType" jdbcType="VARCHAR" />
        <result column="id_type" property="idType" jdbcType="VARCHAR" />
        <result column="id_number" property="idNumber" jdbcType="VARCHAR" />
        <result column="address" property="address" jdbcType="VARCHAR" />
        <result column="company_name" property="companyName" jdbcType="VARCHAR" />
        <result column="bank_name" property="bankName" jdbcType="VARCHAR" />
        <result column="bank_account" property="bankAccount" jdbcType="VARCHAR" />
        <result column="bank_country_code" property="bankCountryCode" jdbcType="VARCHAR" />
        <result column="swift_code" property="swiftCode" jdbcType="VARCHAR" />
        <result column="cnaps_code" property="cnapsCode" jdbcType="VARCHAR" />
        <result column="bic" property="bic" jdbcType="VARCHAR" />
        <result column="iban" property="iban" jdbcType="VARCHAR" />
    </resultMap>
    <select id="listByPrimary3rdOrderId" resultMap="CbExchangeOrderArr"
        parameterClass="CbExchangeOrderArr">
        select 
        EX.ID as ID,EX.ORDER_ID_IN3RD_SYS as ORDER_ID_IN3RD_SYS,EX.PAYER_ID as PAYER_ID ,
        EX.SOURCE_CURRENCY as SOURCE_CURRENCY,EX.SOURCE_AMOUNT as SOURCE_AMOUNT,EX.EXCHANGE_RATE as EXCHANGE_RATE,
        EX.PAYEE_INFO_ID as PAYEE_INFO_ID,EX.TARGET_CURRENCY as TARGET_CURRENCY ,EX.TARGET_AMOUNT as TARGET_AMOUNT,
        EX.MCC_CODE as MCC_CODE
        ,PEE.NAME as NAME,PEE.COUNTRY_CODE as COUNTRY_CODE,PEE.BANK_ACCOUNT_TYPE as BANK_ACCOUNT_TYPE,
        PEE.id_type as id_type,PEE.id_number as id_number,PEE.address as address,PEE.company_name as company_name,
        PEE.bank_name as bank_name,PEE.bank_account as bank_account,PEE.bank_country_code as bank_country_code,
        PEE.swift_code as swift_code,PEE.cnaps_code as cnaps_code,PEE.bic as bic, PEE.iban as iban
        from 
        cb_exchange_order   EX left join cb_payee_info    PEE  on (EX.payee_info_id=PEE.id)
        where  
          EX.PAYER_ID=#payerId:DECIMAL# 
        and EX.STATUS=#status:VARCHAR# 
        and EX.ORDER_ID_IN3RD_SYS  in  
        <iterate property="idList" open="(" close=")" conjunction=",">  
          <![CDATA[#idList[]#]]> 
        </iterate>  
    </select>





















































本人感覺還是挺笨的方法,還在改進中,上面的實體類原本爲兩個實體類,把他們合併成一個實體類來處理的


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章