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

オブジェクト継承の使用

リリース機能 (LPD-34594)

Liferay DXP 2025.Q1+/ポータル GA132+

継承を有効にすると、 1対多の関係 を強化できます。 有効にすると、1対多の関係にある 1 つの オブジェクトが、子オブジェクト エントリが継承する ルート オブジェクトになります。

1 対多の関係で継承を有効にします。

継承を有効にすると、

  • 権限はルート オブジェクトから継承されます。
  • すべての API エンドポイントはルート オブジェクトの下にグループ化されます。

Liferay DXP 2025.Q4 および Portal 2026.Q1 以降では、単一のオブジェクト定義が複数の親の子になることができ、それぞれの親から属性を継承できます。 各子エントリの権限と構成は、親の定義に従って親エントリから継承されます。 たとえば、ユーザーを定義するときは、アドレス オブジェクト定義のフィールドを含めるのが合理的です。 ユーザーのスコープ内で作成されると、アドレス エントリは親のユーザー エントリから継承されます。 一方、アドレス定義は継承関係においてアカウント オブジェクトの子として使用されることもあり、アカウントと一緒に作成されたアドレス エントリはアカウントから権限と構成を継承します。

オブジェクト定義レベルでの複数の親の継承のため、子オブジェクト定義では関係フィールドを必須として設定することはできません。 つまり、親エントリが定義された子オブジェクト エントリを作成することも、親がまったくないスタンドアロン エントリを作成することもできます。 スタンドアロン エントリは、独自のオブジェクト定義で定義された権限と構成を使用します。

ルートオブジェクトの理解

一部のアプリケーションは多くのデータ モデル (つまり、オブジェクト定義) で構成されていますが、統一されたモデルとして動作する方が便利です。 これらのアプリケーションでは、子エンティティの親エンティティ (つまり、ルート モデル) への強い依存関係を定義すると効果的です。

カスタム オブジェクト間の 1 対多の関係を定義するときに、継承を有効にすることで、親オブジェクトの定義を構造内のルート モデルにすることができます。

継承を有効にしてルート オブジェクト階層を作成します。

システム オブジェクトに関連する関係の継承を有効にすることはできません。

継承を有効にすると、

  • 子オブジェクト定義は、ルート オブジェクト定義から アカウント制限 を含む権限を継承します。
  • すべての API エンドポイントは親の下にグループ化されます。

コマース注文アプリケーションでは、注文をルート モデル オブジェクト定義として使用し、注文とその子注文項目エンティティに一元的にアクセスして管理する必要があります。

Liferay では、 Dataset Manager アプリケーション (リリース機能フラグ) がルート モデルの概念を使用します。

データ セット マネージャー (リリース機能ステータス) は、ルート オブジェクトの継承を使用します。

子エンティティと親エンティティで権限と構成を共有する場合は常に継承を使用します。

ルートオブジェクトの有効化

  1. コントロール パネルインスタンス設定に移動します。

  2. ルート オブジェクト定義 (LPD-34594)というリリース機能フラグを有効にします。

  3. 有効にすると、 継承を有効にする チェックボックスを切り替えながら、 1対多の関係を構成することができます。

ルートオブジェクトでワークフローを使用する

Liferay DXP 2025年第3四半期以降

継承が有効になっている場合、子オブジェクト エントリは親オブジェクト定義のワークフロー構成を使用します。 たとえば、ワークフローでアクティブ化できるのは、次の図に示すオブジェクト定義のうち 1 つだけです (Country)。

親オブジェクトの定義には複数の子を含めることができます。

親またはその子のいずれかに変更を加えると、ルート モデル全体 (親と子) がワークフローに組み込まれます。 したがって、子エントリを変更すると、その親がワークフローに送信されます。 その親が別の継承構造のルートにある場合、それに関連するすべての子もワークフローに含まれるようになります。 1 つの通知が送信され、1 つのワークフロー タスクを完了する必要があります。

Country という親オブジェクト定義と、Region と City という 2 つの子オブジェクト定義があるとします。 両方の関係で継承が有効になっています。 この構造では、国に対して単一承認者ワークフローを有効化できます。 アクティブ化されると、都市を追加または更新すると、地域のエントリがワークフロー内で 保留中 になります。これは、親の国が保留中になり、継承が有効になっている場合、地域のステータスがその親に依存するためです。