6.2.5. 一対多関連


一対多関連 は、コレクションテーブルを介さず、外部キーにより2つのクラスのテーブルを関連付けます。このマッピングは標準的な Java のコレクションにある特定のセマンティクスを失います:
  • 包含されたエンティティクラスのインスタンスは、2つ以上のコレクションのインスタンスに属してはいけません。
  • コレクションに含まれるエンティティクラスのインスタンスは、コレクションインデックスの値として2度以上現れてはいけません。
Product から Part への関連は、 Part テーブルへの外部キーカラムと、場合によってはインデックスカラムが存在していなければなりません。 <one-to-many> タグは、これが一対多関連であることを表しています。
<one-to-many 
        class="ClassName"                                   
        not-found="ignore|exception"                        
        entity-name="EntityName"                            
        node="element-name"
        embed-xml="true|false"
    />

1

class(必須): 関連クラスの名前。

2

not-found (オプション - デフォルトは exception): 参照先の行がないキャッシュされた識別子をどのように扱うかを指定します: ignore は、行がないことを関連がないものとして扱います。

3

entity-name (オプション):class の代わりとなる、 関連クラスのエンティティ名。
<one-to-many> 要素はいかなるカラムを宣言する必要がないことに注意してください。同様に どこにもテーブル 名を指定する必要もありません。

警告

<one-to-many> 関連の外部キーカラムが NOT NULLと宣言された場合、<key> マッピングに not-null="true" を宣言するか、コレクションマッピングに inverse="true" を付けた上で、 双方向関連を使う 必要があります。双方向関連の詳細情報についてはこの章で後述します。
次の例は、名称(Part の永続的なプロパティである partName) による Part エンティティの マップを表しています。関数ベースのインデックスを使っていることに注意してください。
<map name="parts"
        cascade="all">
    <key column="productId" not-null="true"/>
    <map-key formula="partName"/>
    <one-to-many class="Part"/>
</map>
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る