簡體   English   中英

在單個 Spring JDBC 更新中從多個查詢中檢索生成的鍵

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM