4.2.2.2. Формирование метаданных
Основной источник формирования структуры метаданных - аннотированные классы сущностей.
Класс сущности отражается в метаданных в следующих случаях:
-
Класс персистентной сущности аннотирован
@Entity
,@Embeddable
,@MappedSuperclass
и расположен в пределах корневого пакета, указанного вmetadata.xml
. -
Класс неперсистентной сущности аннотирован
@MetaClass
и расположен в пределах корневого пакета, указанного вmetadata.xml
.
Все сущности внутри одного корневого пакета помещаются в один экземпляр MetaModel
, которому присваивается имя этого пакета. Между сущностями внутри одной MetaModel
можно устанавливать произвольные связи, между разными - в порядке объявления файлов metadata.xml
в свойстве cuba.metadataConfig
.
Атрибут сущности отражается в метаданных, если:
-
поле класса аннотировано
@Column
,@OneToOne
,@OneToMany
,@ManyToOne
,@ManyToMany
,@Embedded
-
поле класса или метод доступа на чтение (getter) аннотирован
@MetaProperty
Параметры мета-класса и мета-свойств формируются на основе параметров перечисленных аннотаций, а также типов полей и методов класса. Кроме того, если у атрибута отсутствует метод доступа на запись (setter), атрибут становится неизменяемым (read only).