2016-02-02 2 views
1

У нас есть хранимая процедура Informix, которая отлично работает, идет в базу данных и возвращает нам некоторые регистры с различными значениями.Informix SP не возвращает отображаемые бобы с MyBatis

Проблема возникает, когда мы хотим использовать этот SP на MyBatis. У нас есть тестовый пример, когда мы вызываем метод, который вызывает хранимую процедуру с помощью mapper, и когда мы ее выполняем, кажется, что он выполнил свою работу (размер списка 5, то же количество регистров SP в базе данных возвращает), но все регистры являются нулями.

Мы считаем, что преобразователь не отображает значения в bean, поэтому регистры равны нулю. Но мы не уверены.

Мы вызываем процедуру магазина, как этот

 <select id="requestAllCoberturasPlan" 
     parameterType="RequestCoberturasPlanEvent"   
     statementType="CALLABLE"> 

{ 
    #{lstCoberturasPlan, jdbcType=CURSOR, mode=OUT, resultMap=requestAllCoberturasPlanResultMap, javaType=java.sql.ResultSet} = 
    call sp_plan_cobervida 
    (
     #{cveLinea, jdbcType = SMALLINT, mode = IN}, 
     #{cveProd, jdbcType = SMALLINT, mode = IN}, 
     #{cvePlan, jdbcType = SMALLINT, mode = IN}, 
     #{idSolicitud, jdbcType = SMALLINT, mode = IN} 
    ) 
} 
    </select> 

Сталкиваются ли кто-нибудь проблему, как это? Пожалуйста, нам нужна вся наша помощь.

+0

Не могли бы вы опубликовать рабочий пример для этой проблемы? – Denis

ответ

0

Вам не нужна часть параметров процедуры вызова процедуры. Просто используйте этот

<select id="requestAllCoberturasPlan" 
    parameterType="RequestCoberturasPlanEvent"   
    statementType="CALLABLE" resultMap=requestAllCoberturasPlanResultMap> 
{call sp_plan_cobervida 
    (
    #{cveLinea, jdbcType = SMALLINT, mode = IN}, 
    #{cveProd, jdbcType = SMALLINT, mode = IN}, 
    #{cvePlan, jdbcType = SMALLINT, mode = IN}, 
    #{idSolicitud, jdbcType = SMALLINT, mode = IN} 
    ) 
} 
</select> 

взглянуть на этот учебник: http://www.tutorialspoint.com/mybatis/mybatis_stored_procedures.htm