Documentation

Documentation Menu
Go Back

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

Liferay DXP/Portal 7.4以降で利用可能

リレーションシップは、オブジェクト定義間の接続であり、そのエンティティをリンクさせるために使用することができます。 システムオブジェクトとカスタムオブジェクトの両方を含む、任意のパブリッシュまたは非パブリッシュのオブジェクトにリレーションシップを追加することができます。

リレーションシップの種類

オブジェクトには、次の2種類のリレーションシップがあります。

1対多 :現在のオブジェクトのエンティティの1つを別のオブジェクトの複数のエンティティに関連付けることができます。 選択すると、関連の子側(つまり、「多」側)のエンティティに新しいフィールドが追加され、「親」側(つまり、「1」側)にテーブルが追加されます。 子側では、新しいフィールドをオブジェクトのカスタムレイアウトのフィールドタブに追加し、そのエンティティを関連の親側の単一エンティティに関連付けることができます。 親側では、新しいテーブルをオブジェクトのカスタムレイアウトの関連タブに追加して、現在の親エンティティに関連するすべてのエンティティを一覧表示できます。

多対多 :現在のオブジェクトの複数のエンティティを別のオブジェクトの複数のエンティティに関連付けることができます。 選択すると、リレーションシップの両側に新しいデータベーステーブルが作成されます。 このテーブルは、いずれかのオブジェクトのカスタムレイアウトのリレーションシップタブに追加でき、関連するすべてのエンティティを一覧表示するために使用されます。

重要

リレーションシップテーブルの表示には、カスタムレイアウトが必要です。 ただし、システムオブジェクトのカスタムレイアウトはサポートされていません。 詳しくは、オブジェクトレイアウトの設計を参照してください。

新しいリレーションシップの追加

次の手順に従って、オブジェクトにリレーションシップを追加します。

  1. オブジェクト ポートレットを開きます。

  2. 目的のオブジェクトを選択します。

  3. リレーションシップ] タブをクリックし、 追加 ボタン(Add Button)を選択します。

    [リレーションシップ]タブの追加ボタンをクリックし、ラベルと名前を入力して、リレーションシップタイプと目的のオブジェクトを選択します。

  4. ラベルリレーションシップ名 を入力します。

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

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

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

    注釈

    同じオブジェクト内のエントリーを関連付けたい場合は、[一対多]タイプを使用する必要があります。

  6. 現在のオブジェクトに関連付ける オブジェクト を選択します。

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

    [保存]をクリックすると、保存された関連が[リレーションシップ]タブに一覧表示されます。

保存すると、新しいリレーションシップを関連するオブジェクトのカスタムレイアウトに追加できます。 次に、リレーションシップフィールドとテーブルを使用して、オブジェクトエントリーを相互に関連付けることができます。

削除タイプの構成

リレーションシップが保存されたら、その削除タイプを構成できます。 この設定は、エントリーが別のエントリーに関連付けられている場合のエントリーの削除の処理方法を決定し、リレーションシップが作成された後にのみ使用できます。

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

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

Prevent(デフォルト):親側のエントリは、子エントリに関連している場合は削除できません。

Disassociate :親側のエントリは、関連する子エントリに影響を与えることなく自由に削除できます。

Cascade :親側のエントリは自由に削除できます。親エントリを削除すると、ユーザーが子オブジェクトに必要な権限を持っている場合、関連する子エントリもすべて削除されます。

リレーションシップの削除

Liferay 7.4 U26以降およびGA26以降で利用可能

ドラフトと公開されたオブジェクト定義の両方からリレーションシップを削除することができます。 リレーションシップを削除すると、関連するオブジェクト定義からそのフィールドが永久に削除されます。 公開された定義の場合、これは多くのレコードに影響を与える可能性があります。

重要

Liferay 7.4 U26/GA26 以前のバージョンでは、 公開された 時点でオブジェクトに含まれているリレーションシップをユーザーが削除できないようになっています。

次の手順で、公開されているオブジェクト定義からリレーションシップを削除します。

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

  2. 目的のオブジェクト定義の編集を開始し、 [リレーションシップ] タブに進みます。

  3. 目的のリレーションシップの アクション ボタン (Actions Button)をクリックし、 [削除] を選択します。

  4. ダイアログウィンドウで、リレーションシップの名前を入力し、 Delete をクリックして確認します。

    リレーションシップの名前を入力し、[Done]をクリックします。