[英]How to set MySQL AUTO_INCREMENT with JPA
我有一個用 JPA 注釋的類:
@Entity
public class Cart {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Min(1000000)
private Long id;
private Cart() {}
public Long getId() {
return id;
}
}
使用自動 DDL 這會生成一個 MySQL 表:
CREATE TABLE `cart` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1
;
但我希望AUTO_INCREMENT
在創建數據庫后具有值1000000
。
這如何使用 JPA 實現?
親切的問候
史蒂芬
它可以通過 @TableGenerator 注釋實現,如果 JPA 提供程序支持給定注釋。
TableGenerator Annotation 將在那里創建新表,它將保持提供的初始默認值,查詢應該是這樣的。
休眠:
create table cart (
id bigint not null,
primary key (id)
)
休眠:
create table cart_id_generator (
pk_name varchar(255) not null,
pk_value bigint,
primary key (pk_name)
)
休眠:
insert into cart_id_generator(pk_name, pk_value) values ('cart',1000000)
@Entity
public class Cart {
@Id
@TableGenerator(name = "cart_id_generator", table = "cart_id_generator", pkColumnName = "pk_name", valueColumnName = "pk_value", initialValue = 1000000)
@GeneratedValue(strategy = GenerationType.TABLE, generator = "cart_id_generator")
private Long id;
private Cart() {}
public Long getId() {
return id;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.