@Identity

使用 @Identity,我们可以为数据库标识和序列指定其他属性,此外,我们还可以在类级别或属性级别上应用此属性。

在使用 @MappedBy 且 @Id 属性被继承时,能够在类级别上指定 @Identity 非常有用。

我们可以指定的其他属性包括

  • start - 开始值
  • cache - 缓存值(性能优化)
  • generatedBy - 默认或始终

 

类上的示例用法

@Identity(generated = BY_DEFAULT, start = 1000, cache = 100)
@Entity
public class AuditLog {
  ...

属性上的示例用法

@Entity
public class AuditLog {

  @Id
  @Identity(generated = BY_DEFAULT, start = 10000, cache = 1000)
  long id;
  ...

 

开始值

start 值在 H2、Postgres、Oracle 和 SQL Server 序列的 DDL 生成中受支持。

 

缓存值

cache 值是某些数据库中可用的重要性能优化,适用于将有大量插入的表。这指定了数据库应生成并预先缓存多少个标识值,从而减少了数据库使用的内部锁定。支持此功能的数据库包括 Postgres、Oracle 和 NuoDB。