2017-06-14 73 views
-2

我是休眠新手我想知道我們可以從休眠或不休眠調用過程。如果我們可以調用可以在任何請給我一些例子(我的程序將有多個輸出參數)如何從休眠調用程序

+2

是的,這是可能的。發佈之前你有四處看看嗎? (參見[這裏](例如https://www.mkyong.com/hibernate/how-to-call-store-procedure-in-hibernate/))。 –

回答

1

首先你要獲取當前會話並開始交易:

session = sessionFactory.getCurrentSession(); 
     session.beginTransaction(); 

接下來創建存儲過程與方法createStoredProcedureQuery。它接受的程序名(「listPhones」)作爲參數:

StoredProcedureQuery procedure = session.createStoredProcedureQuery("listPhones"); 

接下來,你需要註冊所有進出參數。使用方法registerStoredProcedureParameter。它的第一個參數是從0開始的參數索引,第二個參數是sql類型的java類型。 Sql varchar是java中的String。第三個參數是 javax.persistence.ParameterMode枚舉。它可以是INOUT,INOUT,REF_CURSOR

procedure.registerStoredProcedureParameter(0, String.class, ParameterMode.IN); 
procedure.registerStoredProcedureParameter(1, String.class, ParameterMode.OUT); 

最後,必須通過指標來設定參數登記:

procedure.setParameter(0, "22222287832,33333287832"); 
procedure.setParameter(1, string);