オブジェクトリレーションの定義

オブジェクトリレーションの定義

Liferay 7.4以降で利用可能

リレーションシップは、オブジェクト定義にフィールドとテーブルを追加し、そのエントリーを互いに関連付けるものです。 以下の手順に従って、オブジェクト定義にリレーションシップを追加してください。

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

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

  3. Relationships タブを開き、 Add( Add Button ) をクリックします。

    ラベルと名前を入力し、リレーションシップの種類と目的のオブジェクトの両方を選択します。

  4. ラベル名前 を入力します。

    ラベル :オブジェクトUIでリレーションシップを識別し、リレーションシップの作成後にローカライズできます。

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

  5. リレーションシップの種類を選択します。 1 対多 または 多対多 .

    One to Many : 1つのオブジェクトエントリーを複数のオブジェクトエントリーに関連付けます。 この型は、関係の親側 (すなわち「一人」側) のエントリに関係テーブルを追加し、子側 (すなわち「多数」側) のエントリに関係フィールドを追加するものです。

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

    note

    Objects UIでは、リレーションシップフィールドは定義のFieldsタブに表示され、テーブルはRelationshipsタブに表示されます。

  6. オブジェクト を選択し、現在のオブジェクトに関連付けます。 オブジェクトを自分自身や他のオブジェクト定義に関連付けることができます。

    7.4 U46/GA46以降では、オブジェクト定義をそれ自身に関連付ける一対多および多対多のリレーションシップを定義することができます。 以前は、同じオブジェクト内のエントリーを関連付けるには、1対多のタイプしか使用できませんでした。

  7. Save] をクリックします。

    リレーションシップタブでリレーションシップを表示します。

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

リレーションシップを編集して、その 削除タイプ を設定したり、 必須 にすることができます。

important

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

削除タイプの構成

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

リレーションシップを作成した後、その削除タイプを構成できます。

使用可能なオプションには、 [Prevent] 、 [Disassociate] 、および [Cascade] があります。

Prevent(初期設定):親エントリーが子エントリーに関連している場合に、親エントリーを削除しないようにします。

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

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

リレーションシップフィールドの必須化

For 7.4 U47+/GA47+

シナリオによっては、リレーションシップのフィールドを必須とする場合もあります。 例えば、Ticketオブジェクトを作成する場合、「担当者」を選択するための必須リレーションシップフィールドを定義したいと思うかもしれません。 あるいは、アカウントによるオブジェクトデータへのアクセス制限 場合は、そのオブジェクトとアカウントオブジェクトの関係を必須とする必要があります。

リレーションシップのフィールドを必須にするには、以下の手順に従います。

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

  2. Fields タブを開き、 Relationship field の編集を開始します。

    Go to the Field tab and begin editing the relationships field

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

    必須(Mandatory)スイッチを切り替えます。

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

追加情報