Relationships
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

オブジェクト間の関係を定義する

Liferay 7.4以降

関連は、オブジェクト定義にフィールドとテーブルを追加し、そのエントリーを相互に関連付けるものです。 次の手順に従って、オブジェクト定義に関連を追加します。

  1. グローバルメニュー ( Global Menu ) を開き、 コントロールパネル → オブジェクト に移動します。

  2. 目的のオブジェクト定義の編集を開始します。

  3. 関係 タブに移動し、 追加 ( Add Button をクリックします。

  4. ラベル と 名前 を入力してください。

    ラベル: オブジェクト UI で関係を識別し、関係が作成された後でローカライズできます。

    名前: バックエンドでのリレーションシップの名前を決定し、キャメルケースを使用します。 関連が公開されると、この値は変更できません。

  5. 関係の種類を選択してください: 1 対 多 または 多対多。

    1 対 多: 1 つのオブジェクト エントリを複数のオブジェクト エントリに関連付けます。 このタイプは、リレーションシップの親側(つまり、 ‘1 側)のエントリにリレーションシップ テーブルを追加し、子側(つまり、 ‘多側)のエントリにリレーションシップ フィールドを追加します。

    Liferay DXP 2025.Q1+/Portal GA132+ 継承を有効にする: 継承を有効にして、1 対 多の関係を強化します。 有効にすると、権限は継承され、すべてのAPIエンドポイントは親の下にグループ化されます。 詳細については、 ルートオブジェクト を参照してください。

    多対多: 複数のオブジェクトエントリを複数のオブジェクトエントリに関連付けます。 これにより、関係の両側のエントリにリレーションシップテーブルが追加されます。

    注記

    オブジェクトUIでは、リレーションシップフィールドは定義の「フィールド」タブに表示され、テーブルは「リレーションシップ」タブに表示されます。

  6. 現在のオブジェクトに関連付けるオブジェクト を選択してください。 オブジェクトをそれ自体または他のオブジェクト定義に関連付けることができます。

    ラベルと名前を入力し、関係の種類と目的のオブジェクトの両方を選択してください。

  7. をクリックして保存します。

    [関連]タブで関連を表示します。

一度保存すると、その関連を使ってエントリーを関連付けることができます。

関連を編集して、その削除タイプを設定したり、必須にすることができます。

重要

関係フィールドは、オブジェクトのデフォルトレイアウトに自動的に表示されます。 関係テーブルを表示するには、 関係タブを含むカスタムレイアウトが必要です。 このタブには、現在のエントリに関連するすべてのエントリが表示されます。 システムオブジェクトはカスタムレイアウトをサポートしていないため、リレーションシップフィールドやテーブルを表示することはできません。 それらの関係フィールドには、REST API を介してのみアクセスできます。 詳細については、 オブジェクトレイアウトの設計 を参照してください。

削除タイプの構成

関連を定義した後、その削除タイプを設定することができます。 この設定は、あるエントリーが他のエントリーと関連している場合に、エントリーの削除をどのように処理するかを決定します。

関連を作成した後、その削除タイプを構成できます。

利用可能なオプションには、 防止、 分離、および カスケード があります。

防止 (デフォルト): 親エントリが子エントリに関連付けられている場合、親エントリの削除を防止します。

関連付けを解除: 子エントリに関連付けられている親エントリをユーザーが削除できるようにします。 親エントリーを削除しても、関連するエントリーに影響を与えません。

カスケード: 子エントリに関連付けられている親エントリをユーザーが削除できるようにします。 ユーザーが子オブジェクトのエントリーを削除する権限を持っている場合は、親エントリーを削除すると、その関連エントリーも削除されます。

リレーションシップフィールドを必須にする

Liferay 7.4 U47+/GA47+

一対多のリレーションシップにおいて、子側のオブジェクトはリレーションシップのフィールドを継承します。 場合によっては、これらの項目を必須項目にしたい場合もあるでしょう。 例えば、チケット オブジェクトを作成する場合、 ‘担当者を選択するための必須関係フィールドを定義したい場合があります。 あるいは、アカウントごとにオブジェクトデータへのアクセスを制限したい場合は、そのオブジェクトとアカウントオブジェクトとのリレーションシップを必須に設定する必要があります。

関連フィールドを必須にするには、以下の手順に従います。

  1. 目的のリレーションシップ フィールドを含むオブジェクト の編集を開始します。

  2. フィールド タブに移動し、 リレーションシップ フィールド の編集を開始します。

    [Fields]タブを開き、 関連フィールドの編集を開始します。

  3. 必須 スイッチを切り替えます。

    [Mandatory]に切り替えます。

  4. をクリックして保存します。