日期:2014-05-16 浏览次数:20496 次
@Transient
默认情况下,JPA 持续性提供程序假设实体的所有字段均为持久字段。
使用 @Transient 批注指定实体的非持久字段或属性,例如,一个在运行时使用但并非实体状态一部分的字段或属性。
JPA 持续性提供程序不会对批注为 @Transient 的属性或字段持久保存(或创建数据库模式)。
该批注可以与 @Entity 、@MappedSuperclass 和 @Embeddable 一起使用。
该批注没有属性。有关更多详细信息,请参阅 API 。
示例 1-89 显示了如何使用此批注将 Employee 字段 currentSession 指定为非持久字段。JPA 持续性提供程序将不持久保存该字段。
示例 1-89 @Transient
@Entitypublic class Employee {??? @Id int id;??? @Transient Session currentSession;??? ...}
@UniqueConstraint
默认情况下,JPA 持续性提供程序假设所有列均可以包含重复值。
使用 @UniqueConstraint 批注指定将在为主表或辅助表生成的 DDL 中包含一个唯一约束。或者,您可以在列级别指定唯一约束(请参阅 @Column )。
表 1-48 列出了此批注的属性。有关更多详细信息,请参阅 API 。
表 1-48 @UniqueConstraint 属性
属性 |
必需 |
说明 |
columnNames |
? |
如果任何列均包含唯一约束,请将 columnNames 设置为 String 列名的数组。 |
?
示例 1-90 显示了如何使用此批注对主表 EMP 中的列 EMP_ID 和