首页 > Java > java教程 > 正文

如何在 JPA 中实现版本化数据条目的复合主键?

Susan Sarandon
发布: 2024-10-29 07:36:02
原创
414 人浏览过

How to Implement Composite Primary Keys for Versioned Data Entries in JPA?

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

场景:

考虑需要存储多个版本的场景相同数据条目的数据,由 id 和 Version 列表示。目标是创建一个可以复制具有不同版本的条目的实体。

实体定义:

要定义具有复合主键的实体,您可以使用以下方法:

  1. 嵌入类: 创建一个包含关键字段的嵌入类。该类将用作实体中的 EmbeddedId。
<code class="java">@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
}</code>
登录后复制
  1. 实体类: 实体类将引用嵌入类作为其主要类
<code class="java">@Entity
public class YourEntity {

    @EmbeddedId
    private MyKey myKey;

    @Column(name = "ColumnA")
    private String columnA;

    // Getters and setters
}</code>
登录后复制

另一种方法:

或者,@IdClass 注解可用于定义复合主键。这种方法允许您直接在关键字段上使用 @Id 注释。

<code class="java">@Entity
@IdClass(MyKey.class)
public class YourEntity {

    @Id
    private int id;

    @Id
    private int version;

    // Getters and setters
}</code>
登录后复制
<code class="java">public class MyKey implements Serializable {

    private int id;
    private int version;

    // Getters and setters
}</code>
登录后复制

复制实体:

用不同的值复制实体version,创建一个具有相同 id 但版本值不同的新实例。这将在数​​据库中创建一个代表新版本的单独条目。

以上是如何在 JPA 中实现版本化数据条目的复合主键?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!