【问题标题】:Hibernate postgres auto increment after manual insert手动插入后休眠postgres自动递增
【发布时间】:2019-11-03 06:01:01
【问题描述】:

我有一个基本的 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...

我的问题是,在启动时,基本实体由 flyway 持久化,但是在尝试保存新实体时,hibernate 尝试为其提供 ID 1,尽管它已经被赋予另一个。

我也试过用 SEQUENCE 策略,问题没有得到解决。

【问题讨论】:

    标签: postgresql hibernate flyway


    【解决方案1】:

    好的,问题是我在插入脚本时明确指定了我想要提供的 ID,并且我没有让 postgres 发挥作用......

    【讨论】:

      猜你喜欢
      • 2011-03-25
      • 1970-01-01
      • 2016-09-01
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-08
      • 2013-04-12
      相关资源
      最近更新 更多