Java MyBatis调用带有返回值和out参数的存储函数

Java MyBatis调用带有返回值和out参数的存储函数,java,oracle,mybatis,Java,Oracle,Mybatis,我试图调用如下函数: PCK_BEE.FUN_FOO(A IN VARCHAR2, B OUT T_CURSOR) RETURN VARCHAR2; -- TYPE T_CURSOR IS REF CURSOR; -- TYPE R_DEP IS RECORD (P_CODE VARCHAR2(3), P_DESC VARCHAR2(30)); 在MyBatis上,我创建了一个对象: public class LovPrc { private List<ProcedureT

我试图调用如下函数:

PCK_BEE.FUN_FOO(A IN VARCHAR2, B OUT T_CURSOR) RETURN VARCHAR2;
--
TYPE T_CURSOR IS REF CURSOR;
--
TYPE R_DEP  IS RECORD (P_CODE VARCHAR2(3),  P_DESC   VARCHAR2(30));
在MyBatis上,我创建了一个对象:

public class LovPrc {
   private List<ProcedureTypeLov> lov;
   private String error;

   // Getters and Setters
}
制图员:

<select id="lovDep" resultType="LovPrc" parameterType="map" 
           statementType="CALLABLE">
    { #{error, mode=OUT, jdbcType=VARCHAR} = call 
        PCK_BEE.FUN_FOO(#{A, mode=IN,
                        #{lov, jdbcType=CURSOR, 
                              mode=OUT, resultMap=LovPrc, javaType=java.sql.ResultSet})}
</select>

{{错误,模式=OUT,jdbcType=VARCHAR}=call
PCK_BEE.FUN_FOO(#{A,mode=IN,
#{lov,jdbcType=CURSOR,
mode=OUT,resultMap=lovpr,javaType=java.sql.ResultSet})
POJO正在返回对象,但我得到的是null


我应该如何调用这种类型的函数并在POJO上返回它?无法将其更改为同时包含两个参数的过程,因为OUT已经处理了这一点,这是我如何使其工作的:

<select id="lovDep" parameterType="LovPrc" statementType="CALLABLE">
{ #{error,jdbcType=VARCHAR,mode=OUT} = call PCK_BEE.FUN_FOO(#{A, mode=IN, jdbcType=VARCHAR},
                                                            #{lov, jdbcType=CURSOR, resultMap=MapLov, mode=OUT})}
</select>

<resultMap id="MapLov" type="ProcedureTypeLov">
     <result column="A (name of the column returned by CURSOR)" property="a"/>
</resultMap>

{{error,jdbcType=VARCHAR,mode=OUT}=call PCK#u BEE.FUN#FOO({A,mode=IN,jdbcType=VARCHAR},
#{lov,jdbcType=CURSOR,resultMap=MapLov,mode=OUT}
LovPrc作为call和out对象的参数对象来处理响应

<select id="lovDep" parameterType="LovPrc" statementType="CALLABLE">
{ #{error,jdbcType=VARCHAR,mode=OUT} = call PCK_BEE.FUN_FOO(#{A, mode=IN, jdbcType=VARCHAR},
                                                            #{lov, jdbcType=CURSOR, resultMap=MapLov, mode=OUT})}
</select>

<resultMap id="MapLov" type="ProcedureTypeLov">
     <result column="A (name of the column returned by CURSOR)" property="a"/>
</resultMap>