Vamos agora explorar como a definição de entidades pode ser ampliada com novos elementos usando os chamados aspectos.
Assista ao vídeo para saber mais sobre aspectos CDS.
Nesta lição, aprenderemos sobre a diretiva extend . Discutiremos a diretiva annotate mais tarde em outra lição.
A Diretivaextend
Utilizando a diretriz extend , você pode adicionar campos de ampliação a definições existentes, como mostrado na seguinte figura:

No exemplo, o elemento someAdditionalField é adicionado à entidade de domínio Authors. Isso também adiciona este campo à tabela de banco de dados gerada.
Nota
Com a diretriz extend , metadados como anotações também podem ser adicionados a definições existentes ou metadados existentes podem ser sobregravados.
As propriedades do tipo também podem ser definidas via extend. Por exemplo, o comprimento de um elemento existente do tipo Cadeia pode ser aumentado.
Aspectos nomeados
Você pode usar extend com aspectos predefinidos para aplicar as mesmas ampliações a vários destinos, como mostrado na figura a seguir:

O exemplo mostra um aspecto nomeado ManagedObject que define os dois elementos createdAt e createdBy. Tanto a entidade Livros quanto a entidade Autores são estendidas por esses campos por meio desse aspecto nomeado.
Nota
Uma ampliação nomeada pode conter qualquer coisa, como campos, tipos ou entidades.
Inclui como sintaxe de atalho
Você também pode usar aspectos nomeados como includes em uma sintaxe semelhante a uma herança. Essa sintaxe permite que você amplie uma definição com vários aspectos nomeados ao mesmo tempo. Na figura a seguir, a entidade Authors é estendida pelos dois aspectos nomeados ManagedObject e AnotherAspect.

Inclui açúcar sintático. O exemplo mostrado é equivalente a usar uma sequência de extends da seguinte forma:
1234567entity Authors {}
extend Authors with ManagedObject;
extend Authors with AnotherAspect;
extend Authors with {
key ID : UUID;
...
}


