2016-12-14 79 views
0

如果我想讓Several Column組成一個ID。SQL JPA - 多個列作爲主鍵

SQL例如:

CONSTRAINT [PK_NAME] PRIMARY KEY ([Column1],[Column2],[Column3]) 

我如何能做到這一點與JPA實體類?通過columndefinition?

只需設置id字段爲:

value = Column1 + Column2 + Column3 // aint working. 

回答

5

你需要有一類爲您的複合鍵:

public class CompositeKey implements Serializable { 
    private int column1; 
    private int column2; 
    private int column3; 
} 

,然後在你的實體類使用@IdClass註釋:

@Entity 
@IdClass(CompositeKey.class) 
public class EntityExample { 
    @Id 
    private int column1; 
    @Id 
    private int column2; 
    @Id 
    private int column3; 
    ... 
    ... 
} 

我認爲這應該工作。希望它有幫助,歡呼!

是的,還有另外一個解決方案,就像@jklee提到的那樣,兩者都有效,這是一個偏好問題。

+0

謝謝哥們,這有助於! –

0
  1. 使用在@Entity類隨後@Id註釋個別字段是複合主鍵的一部分@IdClass註釋。
  2. 或者可以使用@Embeddable類,該類可以由複合主鍵的各個字段組成,然後可以將此類的引用用作@Entity類中的@Embedded註釋的屬性。 希望這有助於。