Я работаю над устаревшим приложением, которое использует MyBatis . DB имеет значение MySql.
Добавлена хранимая процедура с параметром OUT для получения значения флага, установленного в процедуре. Проблема является то, что хотя вызов процедуры работает и задает значение параметра OUT, это значение не возвращается Java.
Это определение Java вызова метода в преобразователе интерфейс.
void update(@Param("param1") Integer param1, @Param("param2") String param2,
@Param("param3") String param3, @Param("successFlag") Boolean successFlag);
Это определение функции обновления в файле сопоставления MyBatis XML:
<update id="update" parameterType="map" statementType="CALLABLE">
{call UPDATE__PROC(
#{param1, mode=IN, jdbcType=INTEGER},
#{param2, mode=IN, jdbcType=VARCHAR},
#{param3, mode=IN, jdbcType=VARCHAR},
#{successFlag, mode=OUT, jdbcType=BOOLEAN}
)}
</update>
Это то, как обновление MyBatis вызывается из DAO:
Boolean successFlag = false;
try {
session.getMapper(myMapper.class).update(param1, param2, param3, successFlag);
} catch (Exception e) {
logger.error(e.getMessage());
}
logger.info("successFlag: "+successFlag);
return successFlag;
Кто-нибудь может помочь? Спасибо