手动插入后,Hibernate Postgres自动递增

时间:2019-06-20 12:03:37

标签: postgresql hibernate flyway

我有一个基本的spring应用程序,带有一个简单的实体。我有一个flyway脚本,用于创建postgres表并添加一些起始数据。

create table user (
  id serial primary key,
  username varchar  (50) unique not null,
  password varchar  (150) not null
);

insert into user (id, username, password) values (1, 'name', 'somehashed');
insert into etc...

我的实体设置如下:

@Entity
@Table(name = "user")
public class User {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", updatable = false, columnDefinition = "serial")
private Long id;
...
other fields, constructor, getters setters etc...

我的问题是,在启动时,基本实体会通过飞行通道保留下来,但是在尝试保存新实体时,hibernate尝试为其赋予ID 1,尽管它已经被赋予了另一个ID。 >

我也使用SEQUENCE策略进行了尝试,但问题仍未得到解决。

1 个答案:

答案 0 :(得分:0)

好吧,问题在于我在插入脚本时明确指定了要提供的ID,而我没有让postgres发挥作用……