使用 JPA 进行复合主键处理
数据版本控制需要能够使用不同版本复制实体,因此创建复合主键至关重要实体的主键。
具有复合主键的实体定义
In JPA,复合主键可以使用@EmbeddedId或@IdClass注释来定义。
使用@EmbeddedId
为key,然后在实体中用@EmbeddedId注解:
@Entity
public class YourEntity {
@EmbeddedId
private MyKey myKey;
private String columnA;
// getters and setters
}
@Embeddable
public class MyKey implements Serializable {
private int id;
private int version;
// getters and setters
}
使用@IdClass
或者,使用@IdClass注释类,并在类中将ID属性定义为@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;
}
使用版本复制实体
定义实体后,可以使用新版本复制实体。例如,要创建 id=1 的第一个实体的新版本:
YourEntity newVersion = new YourEntity();
newVersion.setMyKey(new MyKey(1, 1)); // new version
newVersion.setColumnA("Some Other Data");
entityManager.persist(newVersion);
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3