2014-05-21 15 views
0

我有一個SQL語句可以正常工作的MS-SQL(SQL Azure的):執行本機T-SQL與Spring

BEGIN TRANSACTION 
DECLARE @UserId INT 
SET @UserId = 1 
select @UserId as some_value 
COMMIT 

(我的實際的SQL是比較複雜的,這只是一個例子)。

如何從Spring執行此本機T-SQL代碼?或者更具體地說,我如何讓Spring將這個T-SQL發送到DB引擎來執行?

我試過使用jdbcTemplate.executeForObject,但它似乎不支持這個SQL。 UncategorizedSQLException是個例外。

回答

0

使用彈簧進行交易處理可以並且應該在您的service layer上使用註釋以聲明方式執行。

只需使用香草JDBC進行creating sprocs etc或運行正常準備好的聲明/查詢並設置con.setAutoCommit(false);

+0

由於各種站在我們這邊問題,使用Spring註解會要求我們寫一個自定義JPA隔離級別。我正在探索避免這種情況的選項。我們可以在T-SQL中乾淨地表達一個解決方案,但不知道如何在Spring中執行它。 –

+0

爲什麼要涉及Spring,只是做一個jdbc準備語句,然後 – NimChimpsky

+0

我試圖使用Spring,因爲這是我們的後端寫入。我只是不能使用事務註釋,因爲我們需要的隔離級別不是由JPA支持,這迫使我們編寫自己的隔離級別。 –