4.2.2.1. One-to-Many: один уровень вложенности
Рассмотрим реализацию композиции на примере сущностей Airport и Terminal:
 
 
  -  Terminal.java - сущность Terminalсодержит обязательную ссылку наAirport.В редакторе сущностей Studio установите следующие свойства для атрибута airport: Attribute type - ASSOCIATION, Cardinality - MANY_TO_ONE, Mandatory - on.
-  Airport.java - сущность Airportсодержит one-to-many коллекцию терминалов. Соответствующее поле аннотировано @Composition для реализации композиции, и @OnDelete для каскадного мягкого удаления.В редакторе сущностей Studio установите следующие свойства для атрибута terminals: Attribute type - COMPOSITION, Cardinality - ONE_TO_MANY, On delete - CASCADE.
-  views.xml - представление airport-terminalsэкрана редактирования аэропорта содержит атрибут-коллекциюterminals. Для этого атрибута используется представление_local, так как атрибутairportсущностиTerminalустанавливается только во время создания экземпляраTerminalи никогда не изменяется после этого, поэтому загружать его не требуется.
-  airport-edit.xml - XML-дескриптор экрана редактирования аэропорта определяет источник данных для экземпляра аэропорта, и вложенный источник для его терминалов. Кроме того, экран содержит таблицу, отображающую терминалы. 
-  terminal-edit.xml - стандартный редактор для сущности Terminal.
В результате редактирование экземпляра аэропорта работает следующим образом:
-  В экране редактирования аэропорта отображается таблица терминалов. 
-  Пользователь может выбрать терминал и открыть экран его редактирования. При нажатии OK в экране редактирования терминала измененный экземпляр терминала сохраняется не в базу данных, а в источник данных terminalsDsэкрана редактирования аэропорта.
-  Пользователь может создавать новые или удалять терминалы - все изменения сохраняются в источнике данных terminalsDs.
-  Пользователь нажимает OK в экране редактирования аэропорта, и измененный Airportвместе со всеми измененными экземплярамиTerminalотправляется на middleware в метод DataManager.commit() и сохраняется в базе данных в рамках одной транзакции.