@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。