JPA でバージョン管理されたデータエントリの複合主キーを実装するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-29 07:36:02
オリジナル
415 人が閲覧しました

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

JPA での複合主キーの作成と処理

シナリオ:

複数のバージョンを保存する必要があるシナリオを考えてみましょう同じデータエントリの ID 列とバージョン列で表されます。目標は、異なるバージョンのエントリを複製できるエンティティを作成することです。

エンティティ定義:

複合主キーを持つエンティティを定義するには、次のアプローチ:

  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. エンティティ クラス: エンティティ クラスは、プライマリとして埋め込みクラスへの参照を持ちます。 key.
<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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!