postgresql springboot查找错误序列以插入postgres DB

aurhwmvo  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(133)

我有一个实体

@Entity
@Table(name = "organization")
public class Organization {

  @Id
  @GeneratedValue(strategy = GenerationType.SEQUENCE)
  private long id;

  @Column(name = "name")
  private String name;
.
.
.

字符串
我创建了一个表:

create table organization (
    id int generated always as identity primary key,
    name text unique not null
);


这个查询的结果是在数据库中创建了organization_id_seq
当我发送请求并尝试插入数据时,它失败并显示错误消息

jdbc.spi.SqlExceptionHelper: ERROR: relation "organization_seq" does not exist


organization_seq实际上不存在,但organization_id_seq存在,我如何解决这个问题?
我试过GenerationType.AUTO,结果是同样的错误。

643ylb08

643ylb081#

GeneratedValue.strategy设置为GenerationType.IDENTITY
当表具有PK的标识列时,这是正确的策略。
AUTO所做的取决于PK和数据库的数据类型,在您的情况下,似乎最终会尝试使用序列。如果您想使用序列,请在模式创建脚本中创建一个具有正确名称的序列,并删除id列的标识声明。
例如https://www.baeldung.com/hibernate-identifiers,了解如何生成id。

相关问题