1. 程式人生 > >springboot jpa 複合主鍵 聯合主鍵

springboot jpa 複合主鍵 聯合主鍵

開發十年,就只剩下這套架構體系了! >>>   

在開發中,資料庫中定義了一個複合主鍵,這時候在對映不稍微處理下會有一點問題。什麼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註解,不過我看比較麻煩,配置較多,不如這個方便,就用這個了,有興趣可以去百度瞭解另外