在 JPA 中创建和处理复合主键
要管理实体内的数据版本,创建复合主键允许复制基于版本号的条目。考虑以下实现:
@Entity public class YourEntity { @EmbeddedId private MyKey id; private String columnA; // Getters and setters omitted for brevity } @Embeddable public class MyKey implements Serializable { private int id; private int version; // Getters and setters omitted for brevity }
使用这种方法,id 和 version 字段都形成复合主键。这使得可以为每个数据记录创建多个版本:
Entity 1: id = 1, version = 0, columnA = "Data Entry 1" Entity 2: id = 1, version = 1, columnA = "Updated Data Entry 1"
定义复合主键的替代方法是使用 @IdClass 注释:
@Entity @IdClass(MyKey.class) public class YourEntity { @Id private int id; @Id private int version; private String columnA; // Getters and setters omitted for brevity } public class MyKey implements Serializable { private int id; private int version; // Getters and setters omitted for brevity }
在这种情况下, MyKey 类作为主键类,其中的 id 和 version 字段均使用 @Id 注解。
通过使用 @EmbeddedId 或 @IdClass 注解,JPA 可以有效管理复合主键,促进单个实体内数据版本的存储和检索。
以上是JPA中如何使用组合主键来管理数据版本?的详细内容。更多信息请关注PHP中文网其他相关文章!