возвращаемое значение Mybatis

Я пытаюсь получить возвращаемое значение (целочисленное значение) из хранимой функции в Oracle 11g.

функция добавляет 10 к входному номеру:

FUNCTION ADD_TEN(INPUT IN NUMBER) RETURN NUMBER IS 
BEGIN 
    RETURN INPUT + 10; 
END;

в моем интерфейсе картографа у меня есть строка:

Integer add(Integer input); 

и в Xml-файле

<select id="add" statementType="CALLABLE" resultType='java.lang.Integer'>
    {#{output,mode=OUT,jdbcType=NUMERIC,javaType=Integer} = call test_pkg.ADD_TEN( 
    #{input,jdbcType=NUMERIC}) } 
</select>`

вызов метода похож на:

Integer sum = mapper.add(45); 

но я получаю следующую ошибку:

Could not set property 'output' of 'class java.lang.Integer' with value '55' Cause: org.apache.ibatis.reflection.ReflectionException: There is no setter for property named 'output' in 'class java.lang.Integer' 

что я делаю не так? Я совсем запуталась...

спасибо.

2 ответов


почему вы не определили как parameterType, так и resultType следующим образом:

parameterType="int" resultType="int"

удалите определенный вывод и попробуйте сделать это так:

<select id="add" parameterType="int" resultType="int" statementType="CALLABLE">
    { CALL ADD_TEN(#{input, mode=IN, jdbcType=INTEGER})}
</select>

решение: тип возврата MyBatis должен быть void. Параметр результат я искал в ResultMap, что функция/процедура возвращает.

С уважением.