![](/img/trans.png)
[英]Executing Multiple queries (Insert and Update) in single transaction using Spring JDBC template
[英]Retrieve generated keys from multiple queries in single Spring JDBC Update
我正在使用單個 Spring JDBC 更新來更新 Postgres 數據庫中的兩個表。 我的 SQL 查詢如下:
UPDATE accounts SET last_transaction_amount = :transaction_amount WHERE acct_num = :acct_num; INSERT INTO transactions (transaction_amout) VALUES (:transaction_amount);
使用NamedParameterJdbcTemplate#update
,我可以執行此查詢並實現預期結果。
transactions
表生成一個順序事務標識符,我想將它返回給我的應用程序。
我試過在update
調用中傳遞一個GeneratedKeyHolder
。 這將返回錯誤“當沒有預期結果時返回了結果”。 文檔鏈接。
我試過傳遞一個GeneratedKeyHolder
和列名數組( new String[] {"transaction_id"}
)。 這將返回該列不存在的錯誤。 請注意,當我只通過INSERT
查詢而沒有前面的UPDATE
查詢時,此方法調用確實可以返回事務 ID。 文檔鏈接。
如何檢索生成的密鑰? 謝謝!
您似乎在尋找RETURNING
子句。 假設序列號被稱為transaction_id
:
INSERT INTO transactions (transaction_amout)
VALUES (:transaction_amount)
RETURNING transaction_id;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.