我尝试从Oracle 11 g中的存储函数获取返回值(整数值)。
此函数将输入数字加10:
FUNCTION ADD_TEN(INPUT IN NUMBER) RETURN NUMBER IS
BEGIN
RETURN INPUT + 10;
END;
在我的mapper界面中,我看到了这样一行:
Integer add(Integer input);
并在Xml文件中
<select id="add" statementType="CALLABLE" resultType='java.lang.Integer'>
{#{output,mode=OUT,jdbcType=NUMERIC,javaType=Integer} = call test_pkg.ADD_TEN(
#{input,jdbcType=NUMERIC}) }
</select>`
对方法的调用如下所示:
Integer sum = mapper.add(45);
但我得到以下错误:
Could not set property 'output' of 'class java.lang.Integer' with value '55' Cause: org.apache.ibatis.reflection.ReflectionException: There is no setter for property named 'output' in 'class java.lang.Integer'
我做错什么了?我真的搞不懂...
- 谢谢-谢谢
2条答案
按热度按时间ctehm74n1#
为什么没有像下面这样定义parameterType和resultType:
删除特定的输出,并尝试使其如下所示:
9lowa7mx2#
解决方案:MyBatis返回类型必须为
void
。我要查找的结果参数位于函数/过程返回的ResultMap中。