エンティティの定義を、いわゆるアスペクトを使用して新しいエレメントで拡張する方法を見ていきましょう。
CDS アスペクトの詳細については、ビデオを視聴してください。
このレッスンでは、extend ディレクティブについて学習します。annotate ディレクティブについては、後で別のレッスンで説明します。
extend 指示
extend ディレクティブを使用すると、以下の図に示すように、既存の定義に拡張項目を追加することができます。

この例では、エレメント someAdditionalField が Authors ドメインエンティティに追加されます。これにより、生成されたデータベーステーブルにもこの項目が追加されます。
注記
extend ディレクティブを使用すると、アノテーションなどのメタデータを既存の定義に追加したり、既存のメタデータを上書きしたりすることもできます。
タイププロパティは、extend を使用して設定することもできます。たとえば、String 型の既存のエレメントの長さを増やすことができます。
名称付アスペクト
以下の図に示すように、事前定義された側面とともに extend を使用して、同じ拡張を複数のターゲットに適用することができます。

この例は、createdAt および createdBy の 2 つの要素を定義する名前付きアスペクト ManagedObject を示しています。ブックエンティティと作成者エンティティの両方が、この名前付きアスペクトを介してこれらのフィールドによって拡張されます。
注記
指定の拡張には、項目、タイプ、エンティティなど、任意のものを含めることができます。
ショートカット構文として含む
継承型の構文では、インクルードとして名前付きアスペクトを使用することもできます。この構文を使用すると、複数の指定アスペクトで同時に定義を拡張することができます。以下の図では、Authors エンティティが ManagedObject および AnotherAspect という 2 つのアスペクトで拡張されています。

インクルードはシンタクティカル・シュガー。ここに示す例は、次のように extends のシーケンスを使用する場合と同じです。
1234567entity Authors {}
extend Authors with ManagedObject;
extend Authors with AnotherAspect;
extend Authors with {
key ID : UUID;
...
}


