springboot jpa 複合主鍵 聯合主鍵
阿新 • • 發佈:2019-03-27
在開發中,資料庫中定義了一個複合主鍵,這時候在對映不稍微處理下會有一點問題。什麼does not define an IdClass錯誤,亂七八糟的。反正就是有問題。進入正題。
1、首先定義一個複合主鍵類。也就是複合主鍵的名稱,一定和資料庫匹配。我資料庫的主鍵就是aa_id和bb_id,因為使用mysql,jpa的預設命名方式,就是駝峰對映資料庫變成下劃線,就不多介紹了。然後 一定 一定 一定要實現Serializable介面,不然報錯。
@Data public class xxxRelationPK implements Serializable { private BigInteger aaId; private BigInteger bbId; }
2、然後在你的資料對映到實體類上面打上一個註解,主鍵欄位上打上@Id註解,完事。此類不需要實現Serializable介面。
@IdClass(xxxRelationPK.class)
@Id @Column(name = "aa_id") private BigInteger aaId; @Id @Column(name = "bb_id") private BigInteger bbId;
3、這樣就完事了,還有另外一種方式也可以實現通過@Embeddable註解,不過我看比較麻煩,配置較多,不如這個方便,就用這個了,有興趣可以去百度瞭解另外