シナリオ:
複数のバージョンを保存する必要があるシナリオを考えてみましょう同じデータエントリの ID 列とバージョン列で表されます。目標は、異なるバージョンのエントリを複製できるエンティティを作成することです。
エンティティ定義:
複合主キーを持つエンティティを定義するには、次のアプローチ:
<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>
<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 中国語 Web サイトの他の関連記事を参照してください。