簡體   English   中英

復合鍵和 spring-data-jdbc

[英]Composite Key and spring-data-jdbc

我有一個使用復合鍵的數據庫。 是否可以使用 spring-data-jdbc? 我嘗試了里程碑版本 1.1M2,其中我以以下方式映射了我的實體:

class History {

   @ID
   @Embedded
   private CompositeHistoryID  id;
}

然后在我的存儲庫類中,我添加了

HistoryRepository extends Repository<History,CompositeHistoryID  >{
   History  findByhId(CompositeHistoryID  id)
}

我跟蹤了 SQL,但它不起作用。 嵌入部分有效,但 where 子句不正確。 它使用單個參數持有者而不是具有常規復合鍵結構,其中 element1=subkey1 和 element2=subkey2 等等......

我有兩個問題。 有什么方法可以使復合 ID 工作嗎?

第二個問題是,假設我在@Query之上使用自定義@Query之后 SAVE 方法findByID會起作用? 什么是根本沒有ID,如果我只是隨機選擇一個列並說你將成為我的ID怎么辦?

@Embedded不適用於 Id, 現在所有的 SQL 語句都為 id 列假定一個簡單的值。 我認為沒有解決方法。

一種可行的解決方法是創建一個視圖,該視圖將復合鍵顯示為單個字段,並具有將正確數據寫入基礎表的觸發器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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