3.2.1.2.1. 类注解

API 文档

@Embeddable




定义一个与所属实体存储在同一表中的嵌入实体。



应使用 @MetaClass 注解来指定实体名称。



API 文档

@EnableRestore

表示软删除的实体实例是否可以通过 Administration > Data Recovery 菜单打开的 core$Entity.restore 界面进行恢复。

API 文档

@Entity




声明一个类是一个数据模型实体。



参数:



-
name – 实体的名称,必须带有前缀,以 $ 符号分隔前缀。建议使用项目的简称作为前缀来形成单独的命名空间。



例如:





  1. @Entity(name = "sales$Customer")






API 文档

@Extends

表示该实体是一个对基础实体的扩展,在应用程序中应该使用它来代替其基础实体。参阅 功能扩展

API 文档

@DiscriminatorColumn




SINGLE_TABLEJOINED 继承策略的情况下,用于定义负责区分实体类型的数据库列。



参数:



-
name – 鉴别器列名。

-
discriminatorType – 鉴别器列的类型。



例如:





  1. @DiscriminatorColumn(name = "TYPE", discriminatorType = DiscriminatorType.INTEGER)






API 文档

@DiscriminatorValue




定义此实体的鉴别器列值。



例如:





  1. @DiscriminatorValue("0")






API 文档

@IdSequence




如果实体是 BaseLongIdEntityBaseIntegerIdEntity 的子类,则应明确定义用于生成标识符的数据库序列名称。如果实体没有此注解,则框架将自动生成名称并创建一个序列。



参数:



-
name – 序列名称。

-
cached - 可选参数,定义序列应该以 cuba.numberIdCacheSize 递增,并将未使用的 ID 值缓存在内存中。默认为 False。



API 文档

@Inheritance




定义实体类的继承策略。此注解在实体继承层次的根类上指定。



参数:



-
strategy – 继承策略,默认为 SINGLE_TABLE



API 文档

@Listeners




定义监听器列表,用来响应中间的实体实例生命周期事件。



在注解值中指定监听器 bean 名称,可以是字符串或字符串数组。请参阅实体监听器



例如:





  1. @Listeners("sample_UserEntityListener")








  1. @Listeners({"sample_FooListener","sample_BarListener"})






API 文档

@MappedSuperclass




表示该类用作其它实体类的父类,其属性必须用作后代实体的一部分。这种类不关联任何特定的数据库表。



API 文档

@MetaClass




用于声明非持久化或嵌入实体(也就是不能用 @javax.persistence.Entity 注解)



参数:



-
name – 实体名称,必须以一个前缀开头,以 $ 符号分隔前缀。建议使用项目的简称作为前缀来形成单独的命名空间。



例如:





  1. @MetaClass(name = "sales$Customer")






API 文档

@NamePattern




用于定义实体实例的 Instance.getInstanceName() 方法如何生成实例名称。



注解值应该是 {0}|{1} 格式的字符串,其中:



-
{0} - 是符合 String.format() 方法格式化规则的字符串;或者是使用前缀 # 表示的对象方法名,该方法返回值应该是字符串类型,并且不需要参数。

-
{1} - 使用逗号分隔的字段名列表, {0} 部分定义的字符串格式中的变量与这部分的字段名对应。即使在 {0} 中使用的是方法名,仍然需要此字段列表,因为这个列表也被用于构造 _minimal 视图



例如:





  1. @NamePattern("%s %s|name,code")








  1. @NamePattern("#getCaption|login,name")






API 文档

@PostConstruct

可以为方法指定此注解。在 Metadata.create() 方法创建实体实例之后将立即调用此方法。当实例初始化需要调用托管 Bean 时非常方便。请参阅 初始化实体字段

API 文档

@PrimaryKeyJoinColumn




JOINED 继承策略的情况下用于为实体指定外键列,该外键是父类实体主键的引用。



参数:



-
name – 实体的外键列的名称

-
referencedColumnName – 父类实体的主键列的名称



例如:





  1. @PrimaryKeyJoinColumn(name = "CARD_ID", referencedColumnName = "ID")






API DOCS

@PublishEntityChangedEvents

表示实体在数据库改动时,框架会发送 EntityChangedEvent 事件。

API 文档

@SystemLevel

表示该实体是系统级别的实体,不能在各种实体列表中进行选择,例如通用过滤器参数类型或动态属性类型。

API 文档

@Table




定义实体的数据库表。



参数:



-
name – 表名



例如:





  1. @Table(name = "SALES_CUSTOMER")






API 文档

@TrackEditScreenHistory

表示系统将会保存编辑界面的打开历史记录,并能够通过 Help > History 主菜单项在 sec$ScreenHistory.browse 界面上显示。