Java 如何调用MyBatis中返回Oracle记录类型的Oracle函数

Java 如何调用MyBatis中返回Oracle记录类型的Oracle函数,java,oracle,spring,mybatis,Java,Oracle,Spring,Mybatis,我在包装规格中有记录类型: TYPE Payment_Capabilities IS RECORD( pp_partial_payment NUMBER(1) DEFAULT 0, co_advance_payment NUMBER(1) DEFAULT 0, dp_deposit_payment NUMBER(1) DEFAULT 0, dr_deposit_repay NUMBER(1) DEFAULT 0, wp_wallet_payment

我在包装规格中有记录类型:

 TYPE Payment_Capabilities IS RECORD(
    pp_partial_payment NUMBER(1) DEFAULT 0,
    co_advance_payment NUMBER(1) DEFAULT 0,
    dp_deposit_payment NUMBER(1) DEFAULT 0,
    dr_deposit_repay   NUMBER(1) DEFAULT 0,
    wp_wallet_payment  NUMBER(1) DEFAULT 0,
    wr_wallet_repay    NUMBER(1) DEFAULT 0,
    ss_prepaid_payment NUMBER(1) DEFAULT 0);
和返回此类型的函数。我正在使用MyBatis与Spring的集成。如何调用(使用MyBatis XML Mapper)此函数并将结果映射到POJO对象?


<select id="identifyPaymentCapabilities" parameterType="PaymentCapabilities" statementType="CALLABLE">
    DECLARE
        v_payment_capabilities APS.Payment_Capabilities;
    BEGIN
        v_payment_capabilities := APS.get_payment_capabilities(#{customerId, javaType=Integer, jdbcType=NUMERIC, mode=IN});

        #{partialPaymentPP, javaType=Integer, jdbcType=NUMERIC, mode=OUT} := v_payment_capabilities.pp_partial_payment;
        #{advancePaymentCO, javaType=Integer, jdbcType=NUMERIC, mode=OUT} := v_payment_capabilities.co_advance_payment;
        #{depositPaymentDP, javaType=Integer, jdbcType=NUMERIC, mode=OUT} := v_payment_capabilities.dp_deposit_payment;
        #{depositRepayDR,   javaType=Integer, jdbcType=NUMERIC, mode=OUT} := v_payment_capabilities.dr_deposit_repay;
        #{walletPaymentWP,  javaType=Integer, jdbcType=NUMERIC, mode=OUT} := v_payment_capabilities.wp_wallet_payment;
        #{walletRepayWR,    javaType=Integer, jdbcType=NUMERIC, mode=OUT} := v_payment_capabilities.wr_wallet_repay;
        #{prepaidPaymentSS, javaType=Integer, jdbcType=NUMERIC, mode=OUT} := v_payment_capabilities.ss_prepaid_payment;
    END;
</select>
声明 v_支付能力APS.支付能力; 开始 v_payment_capabilities:=APS.get_payment_capabilities(#{customerId,javaType=Integer,jdbcType=NUMERIC,mode=IN}); #{partialPaymentPP,javaType=Integer,jdbcType=NUMERIC,mode=OUT}:=v_payment\u capabilities.pp_partial_payment; #{advancePaymentCO,javaType=Integer,jdbcType=NUMERIC,mode=OUT}:=v_payment\u capabilities.co_advance\u payment; #{depositPaymentDP,javaType=Integer,jdbcType=NUMERIC,mode=OUT}:=v_payment\u capabilities.dp_deposit\u payment; #{DepositReturnedr,javaType=Integer,jdbcType=NUMERIC,mode=OUT}:=v_payment_capabilities.dr_deposit_return; #{walletPaymentWP,javaType=Integer,jdbcType=NUMERIC,mode=OUT}:=v_payment\u capabilities.wp_wallet\u payment; #{walletRepayWR,javaType=Integer,jdbcType=NUMERIC,mode=OUT}:=v_payment_capabilities.wr_wallet_return; #{prepaidPaymentSS,javaType=Integer,jdbcType=NUMERIC,mode=OUT}:=v_payment\u capabilities.ss_prepayment\u payment; 结束;

声明
v_支付能力APS.支付能力;
开始
v_payment_capabilities:=APS.get_payment_capabilities(#{customerId,javaType=Integer,jdbcType=NUMERIC,mode=IN});
#{partialPaymentPP,javaType=Integer,jdbcType=NUMERIC,mode=OUT}:=v_payment\u capabilities.pp_partial_payment;
#{advancePaymentCO,javaType=Integer,jdbcType=NUMERIC,mode=OUT}:=v_payment\u capabilities.co_advance\u payment;
#{depositPaymentDP,javaType=Integer,jdbcType=NUMERIC,mode=OUT}:=v_payment\u capabilities.dp_deposit\u payment;
#{DepositReturnedr,javaType=Integer,jdbcType=NUMERIC,mode=OUT}:=v_payment_capabilities.dr_deposit_return;
#{walletPaymentWP,javaType=Integer,jdbcType=NUMERIC,mode=OUT}:=v_payment\u capabilities.wp_wallet\u payment;
#{walletRepayWR,javaType=Integer,jdbcType=NUMERIC,mode=OUT}:=v_payment_capabilities.wr_wallet_return;
#{prepaidPaymentSS,javaType=Integer,jdbcType=NUMERIC,mode=OUT}:=v_payment\u capabilities.ss_prepayment\u payment;
结束;