2012-12-21 14 views
6

मैं ओरेकल 11 जी में संग्रहीत फ़ंक्शन से एक लौटा मूल्य (एक इंटेगर मान) प्राप्त करने का प्रयास कर रहा हूं।वापसी मूल्य Mybatis

समारोह इनपुट संख्या के लिए 10 को जोड़ता है:

FUNCTION ADD_TEN(INPUT IN NUMBER) RETURN NUMBER IS 
BEGIN 
    RETURN INPUT + 10; 
END; 

मेरी नक्शाकार इंटरफ़ेस में मैं रेखा है:

Integer add(Integer input); 

और एक्सएमएल फ़ाइल में

<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' 

क्या मैं गलत कर रहा हूँ? मैं वास्तव में इस के साथ खो गया हूँ ...

धन्यवाद।

उत्तर

1

समाधान: MyBatis वापसी प्रकार void होना चाहिए । परिणाम पैरामीटर जिसे मैं ढूंढ रहा था, परिणामस्वरूप है कि कार्य/प्रक्रिया रिटर्न।

सम्मान।

1

तुम दोनों क्यों parameterType और resultType इस तरह निर्धारित नहीं किया है:

parameterType="int" resultType="int" 

विशिष्ट उत्पादन निकालें और इस तरह इसे बनाने के लिए प्रयास करें:

<select id="add" parameterType="int" resultType="int" statementType="CALLABLE"> 
    { CALL ADD_TEN(#{input, mode=IN, jdbcType=INTEGER})} 
</select> 
संबंधित मुद्दे