![](/img/trans.png)
[英]How to get the execution result from SQL Server stored procedure using Hibernate?
[英]How to get OUTPUT value from stored procedure in hibernate (SQL SERVER)
我在MS SQL Server
存儲過程
CREATE PROC dbo.insertData
@param1 nvarchar(11),
@param2 nvarchar(30),
@ID bigint OUTPUT
AS
BEGIN
INSERT INTO dbo.Adaptor (Col1, Col2) VALUES (@param1, @param2)
SET @ID = SCOPE_IDENTITY();
END
我想在java中將此生成的ID作為輸出參數。
我創建了一個映射文件
<sql-query name="insertData" callable="true">
<return alias="adaptor" class="MyClass">
<return-property name="id" column="ID" />
</return>
{ ? = call InsertData(:param1, :param2) }
</sql-query>
並嘗試從java執行它
Query query = entityManager.createNamedQuery("insertData");
query.setParameter("param1", object);
query.setParameter("param2", getName());
// TODO try to use getSingleResult in tests
List result = query.getResultList();
但我有異常java.sql.SQLException:參數#3尚未設置
如果我刪除? 我得到了
java.sql.SQLException:過程或函數'insertData'需要參數'@ID',這是未提供的。
有誰知道代碼/映射文件應該是什么樣的? 提前致謝
Query query = session.createSQLQuery(
"CALL GetStocks(:stockCode)")
.addEntity(Stock.class)
.setParameter("stockCode", "7277");
List result = query.list();
for(int i=0; i<result.size(); i++){
Stock stock = (Stock)result.get(i);
System.out.println(stock.getStockCode());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.