2013-07-26 3 views
1

В принципе, я хочу сопоставить выходной параметр из хранимого Proc, который является числовым, в свойство базового POJO. Это оказалось немного сложнее, чем я себе представлял. У меня есть следующие настройки:MyBatis - отображает сохраненное значение выходного параметра proc для POJO

<resultMap id="BaseResultMap" type="myPOJO"> 
<result property="pojoPropertyToHaveValueMappedTo" /> 
</resultMap> 

<select id="selectOne" parameterType="com.ParameterType" statementType="CALLABLE" resultMap="BaseResultMap"> 
{call theDB.my_stored_proc 
(#{numberSpReturns,jdbcType=NUMERIC, mode=OUT})} 
/select> 

Вызов к хранимой Proc это хорошо, и я получаю числовое значение возвращения я ожидаю. Однако, конечно, я должен уметь отображать это возвращаемое значение в свойство в моем POJO ???

+0

Если установить свойство результата, чтобы вытащить из колонки, которая не выходит, я считаю, что это будет сгенерировано сообщение об ошибке. Если вы установите точку останова непосредственно перед этим местом ошибки, я считаю, что вы можете отлаживать вывод и видеть, какие столбцы/свойства результата доступны. Столбец с данными может быть таким же простым, как «значение», или, возможно, любое имя переменной. – AngelWarrior

ответ

0

Карты результатов предназначены для прохождения через результирующие наборы. В вашем случае вы можете определить свой собственный TypeHandler для обработки NUMERIC для сопоставления POJO. Что-то вроде этого:

(#{numberSpReturns,jdbcType=NUMERIC, mode=OUT, javaType=myPOJO, typeHandler=yourTypeHandler})