简介
- 将当前主键的值单独保存到一个数据库的表中,主键的值每次都是从指定的表中查询来获得。
- 这种方法生成主键的策略可以适用于任何的数据库,不必担心不同数据库不兼容造成的问题。
使用
create table ticket_sequences (
S_ID varchar2(100) PRIMARY KEY NOT NULL,
S_NEXTNUM NUMBER(20) DEFAULT NULL
)
//插入一条信息,也可以不插入,jpa会自动创建
INSERT INTO ticket_sequences ( s_id ,s_nextnum ) VALUES ( 'inventory',1);
//inventory的值每次增加1000并保存到数据库。
@Id
@TableGenerator(name = "tickets_id_gen",
table = "ticket_sequences",
pkColumnName = "S_ID",
valueColumnName = "S_NEXTNUM",
pkColumnValue = "inventory",
allocationSize = 1000)
@GeneratedValue(strategy = GenerationType.TABLE, generator = "tickets_id_gen")
private Long id;