postgresql 在Sping Boot 中创建序列

wz3gfoph  于 2023-05-17  发布在  PostgreSQL
关注(0)|答案(1)|浏览(105)

我使用 Boot 特别是springdata jpa来处理数据库,数据库管理器是postgres。我需要创建一个序列,将用于属性的构象。具体来说,我的属性称为classifier(此属性不是主键),它由给定的字符串和连续的数字(将由序列给出的值)组成示例FMFC-COMP-1234
目前我使用postgres创建序列

CREATE SEQUENCE seq_name START WITH 1;

但我希望我能用春 Boot 来创造它。任何帮助都将受到欢迎。先谢谢你了

js81xvg6

js81xvg61#

您可以在实体类中使用以下标记

@Entity
@Table(name = "schools")
class School {
  @Id
  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "school_id_seq")
  @SequenceGenerator(name = "school_id_seq", sequenceName = "school_id_seq",  allocationSize=1)
  @Column(name = "id")
  Integer id;
  String name;
  String postcode;
}

Application.properties (政策可以更改)

spring.jpa.hibernate.ddl-auto" : update

这将在应用程序启动时生成以下DDL:

CREATE SEQUENCE IF NOT EXISTS school_id_seq START WITH 1 INCREMENT BY 1;

CREATE TABLE schools
(
    id       INTEGER NOT NULL,
    name     VARCHAR(255),
    postcode VARCHAR(255),
    CONSTRAINT pk_schools PRIMARY KEY (id)
);

相关问题