Мета-аннотации сущностей - набор пар ключ/значение, содержащих дополнительную информацию о сущностях.
Обращение к мета-аннотациям производится с помощью метода мета-класса getAnnotations()
.
Источниками мета-аннотаций сущности являются:
-
Аннотации
@OnDelete
,@OnDeleteInverse
,@Extends
. При этом в мета-аннотациях создаются служебные объекты связей между сущностями. -
Аннотации
@NamePattern
,@SystemLevel
,@EnableRestore
,@TrackEditScreenHistory
. При этом создаются мета-аннотации с ключами, соответствующими полному имени класса Java аннотации. -
Опционально: в прикладном проекте могут быть определены свои аннотации для сущностей, и в переопределенном методе
MetadataImpl.initMetaAnnotations()
отображены в соответствующие мета-аннотации. -
Опционально: в файлах
metadata.xml
также могут быть определены мета-аннотации сущностей. Если мета-аннотация в XML имеет то же имя, что и мета-аннотация, созданная по Java аннотации класса сущности, первая переопределит значение второй.Пример определения мета-аннотаций в
metadata.xml
:<annotations> <entity class="com.haulmont.cuba.security.entity.User"> <annotation name="com.haulmont.cuba.core.entity.annotation.TrackEditScreenHistory" value="false"/> <annotation name="com.haulmont.cuba.core.entity.annotation.EnableRestore" value="true"/> </entity> </annotations>