【发布时间】:2021-10-21 13:36:08
【问题描述】:
我有一个类,它是 PostgreSQL 数据库中表的实体:
@Entity
@Table(name = "users")
public class User {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Getter private Long id;
...
CREATE TABLE IF NOT EXISTS users (
id BIGSERIAL NOT NULL UNIQUE,
...
当应用程序启动时,该表会填充一些测试数据(来自 .sql 文件的槽“INSERT INTO...”)。但是,当通过 Hibernate 在数据库中创建新实例时,ID 总是以 one 开头,迫使我多次创建它,直到生成的 ID 达到所需的值。
我需要 ID 计数器以数字开头,即比表中上一条记录的 ID 多一个。理想情况下不需要我手动指定 ID 值。
【问题讨论】:
-
你可以使用@GeneratedValue(strategy = GenerationType.SEQUENCE)
-
@vaibhavsahu 但我必须手动指定序列的值,并且对我拥有的每个实体都这样做。还有其他方法吗?
标签: java hibernate spring-data