我有一个基本的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策略进行了尝试,但问题仍未得到解决。
答案 0 :(得分:0)
好吧,问题在于我在插入脚本时明确指定了要提供的ID,而我没有让postgres发挥作用……