如果我想讓Several Column組成一個ID。SQL JPA - 多個列作爲主鍵
SQL例如:
CONSTRAINT [PK_NAME] PRIMARY KEY ([Column1],[Column2],[Column3])
我如何能做到這一點與JPA實體類?通過columndefinition?
只需設置id字段爲:
value = Column1 + Column2 + Column3 // aint working.
如果我想讓Several Column組成一個ID。SQL JPA - 多個列作爲主鍵
SQL例如:
CONSTRAINT [PK_NAME] PRIMARY KEY ([Column1],[Column2],[Column3])
我如何能做到這一點與JPA實體類?通過columndefinition?
只需設置id字段爲:
value = Column1 + Column2 + Column3 // aint working.
你需要有一類爲您的複合鍵:
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提到的那樣,兩者都有效,這是一個偏好問題。
@Entity
類隨後@Id
註釋個別字段是複合主鍵的一部分@IdClass
註釋。@Embeddable
類,該類可以由複合主鍵的各個字段組成,然後可以將此類的引用用作@Entity
類中的@Embedded
註釋的屬性。 希望這有助於。使用@Embeddable
和@EmbeddedId
。
例子:
@Entity
public class Project {
@EmbeddedId ProjectId id;
:
}
@Embeddable
Class ProjectId {
int departmentId;
long projectId;
}
更多的信息在這裏http://www.objectdb.com/java/jpa/entity/id#Embedded_Primary_Key_
謝謝哥們,這有助於! –