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

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


id - Version 将是主键。


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


id Version ColumnA


1   0      Some data

1   1      Some Other data

2   0      Data 2. Entry

2   1      Data


慕容3067478
浏览 884回答 3
3回答

FFIVE

您可以制作一个Embedded class,其中包含两个键,然后像EmbeddedId中一样引用该类Entity。您将需要@EmbeddedId和@Embeddable注释。@Entitypublic class YourEntity {    @EmbeddedId    private MyKey myKey;    @Column(name = "ColumnA")    private String columnA;    /** Your getters and setters **/}@Embeddablepublic 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;}

DIEA

MyKey类(@Embeddable)不应具有@ManyToOne之类的任何关系
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java