我正在使用mybatis-spring并尝试从oracle映射ref游标。结果返回为空。有什么想法吗?

<select id="check" parameterType="myVO"
        resultMap="VOResultMap" statementType="CALLABLE" resultType="object">
{ call MYPKG.proc_check(
        #{myVO.id, javaType=String, jdbcType=VARCHAR,mode=IN},
        #{myVO, mode=OUT, javaType=ResultSet, jdbcType=CURSOR, resultMap=VOResultMap}
)}


SP:

PROCEDURE proc_check (
    p_id IN VARCHAR2, po_outCursor OUT SYS_REFCURSOR)
IS
BEGIN
        OPEN po_outCursor FOR
            SELECT * FROM MYTABLE;
END;


地图:

<resultMap id="VOResultMap" type="myVO">
    <result property="action" column="ACTION" />
    <result property="id" column="ID" />
    <result property="name" column="NAME" />
</resultMap>


DAO:

public MyVO check(@Param("VO") MyVO myVO);


用法:

MyVO myVO = new MyVO(id);
MyVO obj = myDAO.check(myVO);
// obj is null !!


非常感谢,

最佳答案

好的,从Java方面,您需要使用地图。

在xml中设置parameterType =“ java.util.Map”
在Java中,输入“ in”参数,即map.put(“ id”,identifier);

接口现在可以返回void。
然后调用接口,如myDAO.check(myMap);。

之后调用myMap.get(“ myVO”),您将返回一个列表。

09-27 19:13