2014-07-23 60 views
2

我正在使用MyBAtis-3和MyBAtis-Spring。 當我試圖調用一個使用MyBatis註釋返回多個輸出參數的存儲過程時。我沒有得到任何東西,我可以看到輸入參數傳遞給日誌中的SP,並掛在那裏,沒有進展,也沒有拋出異常。MyBatis註釋調用存儲過程並獲取參數

PFB的Oracle存儲過程,其我試圖從MyBatis的訪問,

create or replace PROCEDURE C2C.GET_DATA 
(
    "IN_PARAM1" IN NUMBER, 
    "OUT_PARAM2" OUT SAMPLETABLE.COL2%TYPE, 
    "OUT_PARAM3" OUT SAMPLETABLE.COL3%TYPE, 
    "OUT_PARAM4" OUT SAMPLETABLE.COL4%TYPE 
) AS 

    BEGIN 
    SELECT PARAM2,PARAM3,PARAM4 INTO 
    OUT_PARAM2,OUT_PARAM3,OUT_PARAM4 
    FROM C2C.SAMPLETABLE WHERE PARAM1=IN_PARAM1 ; 

    END C2C.GET_DATA; 

PFB映射器界面的方法,

@Select(value= "{ CALL C2C.GET_DATA(#{param1, mode=IN, jdbcType=INTEGER},#{param2, mode=OUT, jdbcType=VARCHAR},#{param3, mode=OUT, jdbcType=INTEGER},#{param4, mode=OUT, jdbcType=INTEGER})}") 
@Options(statementType = StatementType.CALLABLE) 
public void getData(Test test); 

測試對象包含作爲輸入在存儲傳遞的參數過程調用語句。

當我執行此,它被掛在這裏,

main Slf4jImpl 
==> Preparing: { CALL C2C.GET_DATA(?,?,?,?)} 

main Slf4jImpl 
==> Parameters: 60(Integer) 
+0

請問一些人可以幫我嗎? – user3815000

回答

1

令人驚訝的,如果我使用@Insert註釋它工作正常。 調用存儲過程時出現一些奇怪的行爲。讓我知道是否有其他人有一個很好的解決方案,除此之外。

+0

非常感謝,您節省了相當多的時間。 –

相關問題