如何在JPA中创建和处理复合主键

我想要具有来自同一数据条目的版本。换句话说,我想用另一个版本号复制该条目。

id - Version 将是主键。

实体看起来如何?如何将其复制到另一个版本?

id Version ColumnA

1 0 Some data

1 1 Some Other data

2 0 Data 2. Entry

2 1 Data

回答:

你可以制作一个Embedded class,其中包含两个键,然后像EmbeddedId中一样引用该类Entity。

你将需要@EmbeddedId@Embeddable注释。

@Entity

public class YourEntity {

@EmbeddedId

private MyKey myKey;

@Column(name = "ColumnA")

private String columnA;

/** Your getters and setters **/

}

@Embeddable

public class MyKey implements Serializable {

@Column(name = "Id", nullable = false)

private int id;

@Column(name = "Version", nullable = false)

private int version;

/** getters and setters **/

}

完成此任务的另一种方法是使用@IdClass批注,然后将两者都id放在该批注中IdClass。现在你可以@Id在两个属性上使用普通注释

@Entity

@IdClass(MyKey.class)

public class YourEntity {

@Id

private int id;

@Id

private int version;

}

public class MyKey implements Serializable {

private int id;

private int version;

}

以上是 如何在JPA中创建和处理复合主键 的全部内容, 来源链接: utcz.com/qa/421967.html

回到顶部