Моя таблица результатов не работает, когда я использую аннотации, а не маппер xml - PullRequest
1 голос
/ 10 февраля 2020

В моем проекте есть модуль, использующий аннотации ibatis. Мне нужно использовать процедуру storede в этом модуле, которая возвращает одно строковое значение и один resultMap (массив).

    <resultMap id="oldNinsMap" type="com.evry.reseptformidleren.webservice.vo.IdentChangeVo">
        <result property="oldNin" column="nin"/>
    </resultMap>
    <parameterMap id="getIdentChangeParameters" type="map">
        <parameter property="INNIN" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
        <parameter property="RESULT_OUT" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT"/>
        <parameter property="oldNins" jdbcType="CURSOR" javaType="java.sql.ResultSet" mode="OUT" resultMap="oldNinsMap"/>
    </parameterMap>
    <update id="sp_IdentChanged" parameterMap="getIdentChangeParameters" statementType="CALLABLE">
        {call PKG_IDENTITY_CHANGE.SP_IdentChanged (?, ?, ?)}
    </update>

И я пытаюсь сделать то же самое, используя аннотации, но он возвращает только ноль.

    @Results(id = "oldNinsMap",
            value = {
                    @Result(property = "oldNin", column = "nin")
            })
    @Update(value = {
            "{call PKG_IDENTITY_CHANGE.SP_IdentChanged (" +
                    "#{INNIN, mode=IN, jdbcType=VARCHAR, javaType=String }," +
                    "#{RESULT_OUT, mode=OUT, jdbcType=VARCHAR, javaType=String }, " +
                    "#{old_nin, mode=OUT, jdbcType=CURSOR, javaType=java.sql.ResultSet, resultMap=oldNinsMap}" +
                    ") }"
    })
    @Options(statementType = StatementType.CALLABLE)
    Map<String, Object> sp_IdentChanged(Map<String,Object> paramMap);

Что я делаю не так?

...