JPA による複合主キーの処理
データのバージョン管理には、異なるバージョンのエンティティを複製する機能が必要であるため、複合の作成が不可欠ですエンティティの主キー。
複合主キーを使用したエンティティ定義
JPA では、@EmbeddedId アノテーションまたは @IdClass アノテーションを使用して複合主キーを定義できます。
@EmbeddedId の使用
キーに別のクラス (@Embeddable アノテーション付き) を定義し、エンティティ内で @EmbeddedId アノテーションを付けます:
<code class="java">@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 }</code>
@IdClass の使用
または、クラスに @IdClass アノテーションを付け、クラス内で ID 属性を @Id として定義します。
<code class="java">@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; }</code>
Duplicatingバージョンを持つエンティティ
エンティティを定義したら、新しいバージョンで複製できます。たとえば、id=1 の最初のエンティティの新しいバージョンを作成するには:
<code class="java">YourEntity newVersion = new YourEntity(); newVersion.setMyKey(new MyKey(1, 1)); // new version newVersion.setColumnA("Some Other Data"); entityManager.persist(newVersion);</code>
以上がJPA で複合主キーを使用してデータのバージョニングを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。