如果我使用 JPA,我正在運行一個 Spring Boot 應用程式。我正在使用 Postgresql 作為資料庫。
我從每行沒有 Id 的 api 中獲取一些資料。所以我必須使用@Id 和@GeneratedValue。但我的問題是,當我再次請求這些資料時,我可能會再次獲得完全相同的行或其中一些。我可以制作一個由 3 列組成的復合鍵,但是我該如何處理我想要保留的 Id(自動生成的值)。如果我理解正確,我不能同時使用復合主鍵和生成 @Id 嗎?
這個問題的一個擴展是有時每行中的一列都會更新。然后我想只更新這一列,而不是在資料庫中創建一個新行。我可以進行修改后的查詢,檢查三列(復合鍵)是否已經存在,然后如果有任何更改或行丟失,則更新該行,只需保存即可。還是我錯過了他們的任何其他選擇,所以我不必自己寫任何查詢?
uj5u.com熱心網友回復:
你是對的,你必須決定是要使用單個自動生成的 Id 還是復合鍵,你不能同時擁有兩者。如果您的 API 無法處理單個 Id,您可能最好按照您在擴展問題中的想法進行操作;創建復合鍵并在更新行時檢查與您的三個值匹配的行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/455370.html
上一篇:當資源在嵌套jar中時,JavaClassLoader.getResourceAsStream(path)回傳null
