休止状態-O / Rマッピング

これまで、Hibernateを使用した非常に基本的なO / Rマッピングを見てきましたが、3つの最も重要なマッピングトピックがあり、詳細に学ぶ必要があります。

これらは-

  • コレクションのマッピング、
  • エンティティクラス間の関連付けのマッピング、および
  • コンポーネントマッピング。

コレクションのマッピング

エンティティまたはクラスに特定の変数の値のコレクションがある場合、Javaで使用可能なコレクションインターフェイスのいずれかを使用してそれらの値をマップできます。Hibernateはのインスタンスを永続化できますjava.util.Map, java.util.Set, java.util.SortedMap, java.util.SortedSet, java.util.List、および任意 array 永続的なエンティティまたは値の。

シニア番号 コレクションの種類とマッピングの説明
1 java.util.Set

これは<set>要素でマップされ、java.util.HashSetで初期化されます

2 java.util.SortedSet

これは<set>要素でマップされ、java.util.TreeSetで初期化されます。ザ・sort 属性は、コンパレータまたは自然順序のいずれかに設定できます。

3 java.util.List

これは<list>要素でマップされ、java.util.ArrayListで初期化されます

4 java.util.Collection

これは<bag>または<ibag>要素でマップされ、java.util.ArrayListで初期化されます

5 java.util.Map

これは<map>要素でマップされ、java.util.HashMapで初期化されます

6 java.util.SortedMap

これは<map>要素でマップされ、java.util.TreeMapで初期化されます。ザ・sort 属性は、コンパレータまたは自然順序のいずれかに設定できます。

配列は、Javaプリミティブ値タイプの場合は<primitive-array>、その他すべての場合は<array>を使用してHibernateでサポートされます。ただし、ほとんど使用されないため、このチュートリアルでは説明しません。

Hibernateで直接サポートされていないユーザー定義のコレクションインターフェイスをマップする場合は、カスタムコレクションのセマンティクスについてHibernateに通知する必要があります。これは非常に簡単ではなく、使用することをお勧めしません。

アソシエーションマッピング

エンティティクラス間の関連付けとテーブル間の関係のマッピングは、ORMの精神です。以下は、オブジェクト間の関係のカーディナリティを表現できる4つの方法です。アソシエーションマッピングは、単方向でも双方向でもかまいません。

シニア番号 マッピングの種類と説明
1 多対1

Hibernateを使用した多対1の関係のマッピング

2 1対1

Hibernateを使用した1対1の関係のマッピング

3 1対多

Hibernateを使用した1対多の関係のマッピング

4 多対多

Hibernateを使用した多対多の関係のマッピング

コンポーネントマッピング

Entityクラスがメンバー変数として別のクラスへの参照を持つ可能性が非常に高くなります。参照されるクラスに独自のライフサイクルがなく、所有するエンティティクラスのライフサイクルに完全に依存している場合、参照されるクラスは、したがって、Component class

コンポーネントのコレクションのマッピングも、構成にわずかな違いがある通常のコレクションのマッピングと同様の方法で可能です。これらの2つのマッピングについて、例を挙げて詳しく説明します。

シニア番号 マッピングの種類と説明
1 コンポーネントマッピング

メンバー変数として別のクラスへの参照を持つクラスのマッピング。