-
@javax.persistence.Entity
-
Объявляет класс сущностью модели данных.
Параметры:
-
name
- имя сущности, обязательно должно начинаться с префикса, отделенного знаком$
. Желательно использовать в качестве префикса короткое имя проекта для формирования отдельного пространства имен.
Пример:
@Entity(name = "sales$Customer")
-
-
@javax.persistence.MappedSuperclass
-
Определяет, что данный класс является предком некоторых сущностей, и его атрибуты должны быть использованы в составе сущностей-наследников. Такой класс не сопоставляется никакой отдельной таблице БД.
-
@javax.persistence.Table
-
Определяет таблицу базы данных для данной сущности.
Параметры:
-
name
- имя таблицы
Пример:
@Table(name = "SALES_CUSTOMER")
-
-
@javax.persistence.Embeddable
-
Определяет встраиваемую сущность, экземпляры которой хранятся вместе с владеющей сущностью в той же таблице.
Для задания имени сущности требуется применение аннотации
@MetaClass
. -
@javax.persistence.Inheritance
-
Определяет стратегию наследования для иерархии классов сущностей. Данная аннотация должна быть помещена на корневом классе иерархии.
Параметры:
-
strategy
- стратегия, по умолчаниюSINGLE_TABLE
-
-
@javax.persistence.DiscriminatorColumn
-
Используется для определения колонки БД, отвечающей за различение типов сущностей в случае стратегий наследования
SINGLE_TABLE
иJOINED
.Параметры:
-
name
- имя колонки-дискриминатора -
discriminatorType
- тип данных колонки-дискриминатора
Пример:
@DiscriminatorColumn(name = "TYPE", discriminatorType = DiscriminatorType.INTEGER)
-
-
@javax.persistence.DiscriminatorValue
-
Определяет значение колонки-дискриминатора для данной сущности. Эта аннотация должна быть помещена на конкретном классе сущности.
Пример:
@DiscriminatorValue("0")
-
@javax.persistence.PrimaryKeyJoinColumn
-
Используется в случае стратегии наследования
JOINED
для указания колонки внешнего ключа данной сущности, ссылающегося на первичный ключ сущности-предка.Параметры:
-
name
- имя колонки внешнего ключа данной сущности -
referencedColumnName
- имя колонки первичного ключа сущности предка
Пример:
@PrimaryKeyJoinColumn(name = "CARD_ID", referencedColumnName = "ID")
-
-
@NamePattern
-
Определяет способ получения имени экземпляра, возвращаемого методом
Instance.getInstanceName()
.Значением аннотации должна быть строка вида
{0}|{1}
, где-
{0}
- строка форматирования по правиламString.format()
, или имя метода данного объекта с префиксом#
. Метод должен возвращатьString
и не иметь параметров. -
{1}
- разделенный запятыми список имен полей класса, соответствующий формату{0}
. В случае использования в{0}
метода список полей все равно необходим, так как по нему формируется представление_minimal
.
Примеры:
@NamePattern("%s|name")
@NamePattern("#getCaption|login,name")
-
-
@Listeners
-
Определяет список слушателей, предназначенных для реакции на события жизненного цикла экземпляров сущности на уровне Middleware.
Значением аннотации должна быть строка или массив строк с именами классов слушателей - см. Раздел 4.4.4.6, «Entity Listeners»
Строки используются здесь вместо ссылок на классы потому, что классы слушателей находятся только на уровне Middleware и не доступны клиентскому коду, в то время как классы самих сущностей используются на всех уровнях.
Примеры:
@Listeners("com.haulmont.cuba.security.listener.UserEntityListener")
@Listeners({"com.abc.sales.entity.FooListener","com.abc.sales.entity.BarListener"})
-
@MetaClass
-
Используется для объявления неперсистентной или встраиваемой сущности (т.е. когда аннотация
@javax.persistence.Entity
не применима)Параметры:
-
name
- имя сущности, обязательно должно начинаться с префикса, отделенного знаком$
. Желательно использовать в качестве префикса короткое имя проекта для формирования отдельного пространства имен.
Пример:
@MetaClass(name = "sys$LockInfo")
-
-
@SystemLevel
-
Указывает, что данная сущность является системной и не должна быть доступна для выбора пользователем в различных списках сущностей, например, как тип параметра универсального фильтра или тип динамического атрибута.
-
@EnableRestore
-
Указывает, что экземпляры данной сущности доступны для восстановления после мягкого удаления в специальном экране
core$Entity.restore
. -
@TrackEditScreenHistory
-
Указывает, что для данной сущности будет запоминаться история открытия экранов редактирования (
{имя_сущности}.edit
) с возможностью отображения в специальном экранеsec$ScreenHistory.browse
. -
@Extends
-
Указывает, что данная сущность является расширением и должна повсеместно использоваться вместо базовой. См. Раздел 4.8, «Расширение функциональности»
-
@PostConstruct
-
Данная аннотация может быть указана для метода класса. Такой метод будет вызван сразу после создания экземпляра сущности через Metadata.create(). Это удобно, если для инициализации экземпляра сущности требуется вызов каких-либо бинов. Пример см. в Раздел 5.8.2.1, «Инициализация полей сущности».