(3)---関係春データ-JPA共通コメントを学びます

1、@ JoinColumn:カラム接続要素又は特定するための関連するエンティティのセット。
プロパティ名:
外部キー列名、それがされる文脈に応じてテーブル。
接続は、1つまたは多数のマッピング戦略を使用する外部キーである場合、外部キー列またはエンティティは、ソーステーブルに埋め込まれていてもよいです。
接続は、外部キーマッピング戦略のための片道対多マッピングの場合、外部キーは、ターゲットエンティティのテーブルに位置しています。
カップリングは、対多マッピング、または1つまたは多くのマッピング、結合テーブル内の外部キーに多くの/双方向多くのテーブルを結合の使用を対象とする場合。

連結要素は、コレクション、外部キーでコレクションテーブルに結合されている場合。

デフォルト値(単一の列が接続されている使用して)エンティティのプロパティまたはフィールド名+「_」+名によって参照される主キーを指します。

プロパティreferencedColumnNameと:
参照列の外部キー列名。
マッピング関係は、本明細書に記載される場合、ターゲットエンティティのテーブルで参照位置する列以外のエンティティとするときに使用されます。
位置一方向OneToMany外部キーマッピングテーブル列参照ソースエンティティと共に使用した場合。
@JoinTableで使用される場合、接続が定義されている場合、所有エンティティ、またはその逆の接続部に位置するキー列テーブル参照エンティティは、逆エンティティで使用されています。

使用CollectionTableマッピング、エンティティのセットに位置するテーブルで参照される列として。

デフォルト値(単一の結合列を使用して)同じ名前の主キー列の参照テーブル。

ユニークなプロパティ:シングルかどうか、デフォルトはfalse。
プロパティNULL可能:ことができます真のヌル、デフォルトです。
プロパティは挿入可能:一緒に新しいに従うかどうか、本当のデフォルト。
更新可能なプロパティ:真の変更、デフォルトで一緒に従うかどうか。
プロパティcolumnDefinition:DDL SQLフラグメント。
テーブル属性:
列を含むテーブルの名前。何のテーブルはマスターテーブルに表示されていない場合は該当するエンティティを想定しています。
デフォルト:
外部キーの名前が参加した場合は、ソースエンティティのために、1または多数のマッピング戦略を使用することですか、テーブルに埋め込まれていてもよいです。
あなたは片道OneToManyマッピングの使用、またはターゲットエンティティのテーブル名の外部キーマッピング戦略に参加した場合。
多くのマッピング、または1つまたは双方向のテーブルを使用するための多くが参加するための結合である場合は、多くの-に/多マッピング、テーブルの名前が加わります。
参加する場合は、要素のコレクション、テーブルのコレクションの名前です。

プロパティのForeignKey:指定されたコントロールやテーブルを生成する際に外部キー制約を生成します。この要素が指定されていない場合、デフォルトのキー外交政策の持続性プロバイダが適用されます。一般的なデフォルト。



JoinColumns外部キーマップ指定の組み合わせ@ 2、。コメントはコメントJoinColumn同じ関係をグループ化されています。
JoinColumnsアノテーションを使用して、そしてときに名前が、そのような各要素referencedColumnNameとJoinColumnのコメントで指定する必要があります。


図3は、関連する@ JoinTableマップを指定します。協会のためにパーティーを所有しています。
一般に、多対多の一方向と関連する1対多マッピングに使用されます。
またのために使用することができる双方向の多対1 /ワン対多、 一方向多対1、一方向または双方向の1対1。
あなたは@JoinTable注釈を付けていない場合は、接続テーブルの注釈付き要素のデフォルト名は、メインテーブルに関連付けられているアンダースコアテーブル名(最初のすべての側面を持つことである)と結合されます。
プロパティ名:接続テーブル名、アンダースコアで区切られたホストエンティティテーブルを、接続関連した2つのデフォルト名。
プロパティカタログ:ディレクトリテーブル。デフォルトでは、デフォルトのディレクトリです。一般的なデフォルト。
テーブルのスキーマ:スキーマ属性。デフォルトでは、ユーザーのデフォルトのスキーマです。一般的なデフォルト。
プロパティjoinColumns:外部キーは、ホストエンティティに関連付けられた参照テーブルを持つテーブルを結合します。
プロパティinverseJoinColumns:外部キー列接続テーブルは、ホストエンティティに関連付けられた参照テーブルを持っていません。(即ち、反対側)。
プロパティのForeignKey:テーブルが要素joinColumnsに対応して生成された特定の外部キー制約または列を生成するための制御を行います。一般的なデフォルト。
プロパティinverseForeignKey:カラム外部キー制約生成生成されたテーブルのinverseJoinColumns内の指定または制御要素に対応します。一般的なデフォルト。
プロパティuniqueConstraints:テーブルの上にユニーク制約を置きます。のみテーブルが生成されている場合にのみ、これらのメソッドを使用します。追加の制約なしデフォルト。一般的なデフォルト。
インデックス属性:インデックステーブル。のみテーブルが生成されている場合にのみ、これらのメソッドを使用します。一般的なデフォルト。


4、エンティティの多数と互いに関連付けOneToOne @指定された単一の値。
通常、あなたはそれが通常のオブジェクト参照型から推測できるよう明示的に、関連するターゲットエンティティを指定する必要はありません。
関係が双方向である場合には、非当事者はフィールドまたはプロパティの所有者との間の関係を指定するOneToOneコメントmappedBy要素を持っている必要があります。

プロパティtargetEntity:クラスに関連付けられたターゲット・エンティティ。デフォルトのタイプ・フィールドまたはプロパティ。
プロパティカスケード:カスケード操作戦略。デフォルトでは何も操作をカスケード接続していません。
プロパティは、フェッチ:データ収集モード、デフォルトEAGER、即時アクセスを。
オプションのプロパティ:空、デフォルトはtrue許可するかどうか。
プロパティmappedBy:フィールドの関係を有しています。この要素は、抗(非所有者)関連端に指定。誰が関係を維持します。
mappedByは、@ JoinColumn、@ JoinTable同時にすることはできません。
mappedByが他のエンティティの名前を指し属性
プロパティorphanRemovalを:コンフィギュレーション限り削除、およびCascadeType.REMOVE効果をカスケード接続するカスケード削除のいずれかになりますか。デフォルトはfalse。

@JoinColumn @OneToOneは、個体が特定の状況との双方向の関連付けに関連付けられてもよい、と一緒に使用します。1は、通常のパーティを管理するために使用される、外部キーを管理するために、どちら側を決める双方向。


図5は、@ OneToMany多くの関連は、複数値の多重度は持って指定します。
ジェネリック型指定された要素を定義するために設定した場合、関連するターゲットエンティティのタイプを指定する必要はありません、そうでない場合、ターゲットエンティティクラスを指定する必要があります。
関係が双方向である場合は、関係フィールドまたはプロパティの所有者エンティティとの関係を指定するには、mappedBy要素を使用する必要があります。
プロパティtargetEntity:クラスに関連付けられたターゲット・エンティティ。定義のみのJavaの一般的なセットを使用し、オプションです。これは、特に指定しなければなりません。一般的な定義、パラメータの種類のデフォルトセットを使用している場合。
プロパティカスケード:カスケード操作戦略。デフォルトでは何も操作をカスケード接続していません。
プロパティは、フェッチ:データ収集モード、デフォルトLAZY、遅延ロードを。(1の1、多くの-異なる付)
プロパティのmappedBy:フィールドの関係を有しています。関係は一方通行でない限り、それ以外の場合は必要です。
プロパティorphanRemoval:限り、設定はカスケード削除のいずれかになりますよう、削除、およびCascadeType.REMOVE効果をカスケード接続するかどうか。デフォルトはfalse。
データベースから削除された場合、コレクション内の指定されたコレクションの要素を除去します。

注意:@OneToManyだけでは、@JoinColumnを使用していない場合は、単一の多くの関係を築くの関係を維持するために、追加のテーブルを生成します。ターゲット表の@JoinColumnの外部キーで使用した場合に生成されます。


図6に示すように、単一の多数対多数のエンティティのクラスに関連付けられた値を有する他で指定ManyToOneします@。
通常は、それが通常のオブジェクト参照型から推測できるよう明示的に、ターゲットエンティティを指定する必要はありません。
関係が双方向である場合、エンドエンティティOneToMany非所有者は、関係フィールドまたはプロパティの所有者エンティティとの関係を指定するには、mappedBy要素を使用する必要があります。
プロパティtargetEntity:クラスに関連付けられたターゲット・エンティティ。デフォルトのタイプ・フィールドまたはプロパティ。
プロパティカスケード:カスケード操作戦略。デフォルトでは何も操作をカスケード接続していません。
プロパティは、フェッチ:データ収集モード、デフォルトEAGER、即時アクセスを。(そして、異なる多くの)
オプションのプロパティ:空、デフォルトはtrueを許可するかどうか。


一般に関するお問合せ、注文と@OneToManyを一緒に使用する場合7は、[並べ替え@を指定します。
次の形式でソートするフィールド
orderby_list :: = orderby_item [、orderby_item] *
[| DESC ASC] orderby_item :: = [property_or_field_name]

あなたが昇順または降順を指定しない場合は、昇順がデフォルトで使用されています。
何の実体が要素を注文していない場合は、主キーをデフォルト。
フィールドでソートするエンティティに関連付けられた対応する属性に対応して、我々は比較演算をサポートしている必要があります。
使用することができます。埋め込まれたフィールドを参照する属性。


8、多対多関連指定された値が@持ち、多くの多重度。
それぞれ2つの側面、多くの当事者と非当事者との関連持つ、またはその逆の側面を有します。通常のサイドテーブルを結合することは指定されています。
関連付けは双方向である場合には、いずれかの当事者は、の所有者として指定することができます。非当事者がフィールドまたはプロパティの所有者との間の関係を指定するための多対多のコメントmappedBy要素を持っている必要があります。
プロパティtargetEntity:クラスに関連付けられたターゲット・エンティティ。定義のみのJavaの一般的なセットを使用し、オプションです。これは、特に指定しなければなりません。一般的な定義、パラメータの種類のデフォルトセットを使用している場合。
プロパティカスケード:カスケード操作戦略。デフォルトでは何も操作をカスケード接続していません。
プロパティは、フェッチ:データ収集モード、デフォルトLAZY、遅延ロードを。
プロパティmappedBy:フィールドの関係を有しています。関係は一方通行でない限り、それ以外の場合は必要です。

一般@ManyToManyと@JoinTableを一緒に使用しました。
@ManyToManyは、1人の関係に多くの二つに分割します。

ソース例アドレスします。https://github.com/caofanqi/study-spring-data-jpa

おすすめ

転載: www.cnblogs.com/caofanqi/p/11802793.html