在 Spring Boot 中创建序列

问题描述 投票:0回答:1

我使用 spring boot 特别是 spring data jpa 来处理数据库,数据库管理器是 postgres。我需要创建一个将在属性构造中使用的序列。 具体来说,我的属性称为分类器(该属性不是主键),它由给定的字符串和连续的数字(这将是序列给出的值)组成,示例 FMFC-COMP-1234

目前我使用 postgres 创建序列

CREATE SEQUENCE seq_name START WITH 1;

但我希望我可以从 Spring Boot 创建它。欢迎任何帮助。预先感谢

postgresql spring-boot spring-data-jpa
1个回答
1
投票

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

@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)
);
© www.soinside.com 2019 - 2024. All rights reserved.