Я рассмотрел ряд вопросов StackOverflow по этой проблеме, но не могу найти то, что имеет смысл. This one подходит ближе, но не показывает, как получить возвращаемое значение из функции.Возвращаемое значение из функции Oracle с использованием Mybatis
Вот мой картографа вызов:
public Long callMyFunction(@Param("recordId") Long recordId, @Param("otherId") Long otherId, @Param("date") Date date, @Param("comments") String comments);
Вот картографа XML:
<select id="callMyFunction" parameterType="map" statementType="CALLABLE" resultType="java.lang.Long">
{ #{resultId,javaType=java.lang.Long,jdbcType=NUMERIC,mode=OUT} = call MYSCHEMA.MYPACKAGE.my_function(
#{recordId,jdbcType=NUMERIC,mode=IN},
#{otherId,jdbcType=NUMERIC,mode=IN},
#{date,jdbcType=DATE,mode=IN},
#{comments,jdbcType=VARCHAR,mode=IN})}
</select>
на вызов работает, но возвращаемое значение (resultId) всегда нуль.
Может ли кто-нибудь обнаружить проблему?
Вы пробовали его с помощью recordId, javaType = long (собственный тип), а не Long (обертка объекта)? –