ホームページ > Java > &#&チュートリアル > EmbeddedId または IdClass を使用して JPA と Hibernate で複合キーをマッピングする方法は?

EmbeddedId または IdClass を使用して JPA と Hibernate で複合キーをマッピングする方法は?

Susan Sarandon
リリース: 2024-12-03 05:22:16
オリジナル
579 人が閲覧しました

How to Map Composite Keys in JPA and Hibernate using EmbeddedId or IdClass?

JPA および Hibernate を使用した複合キーのマッピング

Java Persistence API (JPA) および Hibernate での複合キーのマッピングは、EmbeddedId またはIdClass アノテーション。

With IdClass

    複合キー フィールドをカプセル化する別の主キー クラス (TimePK など) を定義します。
  1. エンティティにアノテーションを付けます。 @IdClass アノテーション。主キー クラスを指定します。
public class TimePK implements Serializable {
    private Integer levelStation;
    private Integer confPathID;
    // getters, setters
}

@Entity
@IdClass(TimePK.class)
class Time {
    @Id
    private Integer levelStation;
    @Id
    private Integer confPathID;
    // ...
}
ログイン後にコピー

With EmbeddedId

    同様に、別の主キー クラスを定義します (例: TimePK).
  1. 主キー クラスにアノテーションを付けます。 @Embeddable アノテーション。
  2. エンティティに @EmbeddedId アノテーションを付け、主キー クラスを指定します。
@Embeddable
public class TimePK implements Serializable {
    private Integer levelStation;
    private Integer confPathID;
    // getters, setters
}

@Entity
class Time {
    @EmbeddedId
    private TimePK timePK;
    // ...
}
ログイン後にコピー

相違点

  • 意味: EmbeddedId は複合キーに特定の意味があることを示唆しますが、IdClass はフィールドの組み合わせが単に一意の識別子である場合に適しています。
  • クエリ構文: EmbeddedId では、主キー フィールドは次のとおりです。埋め込まれた主キー クラスを通じてアクセスされますが、IdClass を使用してフィールドにアクセスできます。

参考資料

    JPA 1.0 仕様: セクション 2.1.4、9.1.14、および 9.1.15

以上がEmbeddedId または IdClass を使用して JPA と Hibernate で複合キーをマッピングする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート