В моем проекте есть модуль, использующий аннотации 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);
Что я делаю не так?