2009-11-27 10 views
2

я в настоящее время с помощьюКак сопоставить хранимую функцию пакета в iBatis?

<parameterMap class="map" id="param1"> 
    <parameter property="result" jdbcType="BOOLEAN" javaType="boolean" mode="OUT"/> 
    <parameter property="arg1" jdbcType="VARCHAR" mode="IN"/> 
    <parameter property="resultCode" jdbcType="INTEGER" javaType="int" mode="OUT"/> 
</parameterMap> 

<procedure id="contAvail" parameterMap="param1"> 
    <![CDATA[ 
     { ? = call pkg.func(?,?)} 
    ]]> 
</procedure> 

чего не хватает?

ответ

0

Оказалось, что код указан неверно. Он работает, если мы изменим тип возвращаемых данных с булевых на что-либо еще. Кажется, логическое значение не поддерживается должным образом.

Также, как по праву предложил Джим, CDATA не является им. Он работает с ним или без него.

0

У вас есть два параметра в CALL, но параметрMap с тремя параметрами. У вас есть один результат, но нет resultMap.

Не уверен, что CDATA что-то болит, но это не нужно.

Подробнее см. На online help. Также проверьте this и this.

0

Важно отметить, что ibatis возвращает результат на самой карте входных параметров даже для вызова функции. В этом случае param1 будет удерживать результат вызова функции (и null возвращается в java-методе queryForObject() ..)

Смежные вопросы