Правильная настройка параметра MyBatis OUT для вызова хранимой процедуры - PullRequest
0 голосов
/ 05 апреля 2020

Я работаю над устаревшим приложением, которое использует 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;

Кто-нибудь может помочь? Спасибо

...