我使用 spring boot 特别是 spring data jpa 来处理数据库,数据库管理器是 postgres。我需要创建一个将在属性构造中使用的序列。 具体来说,我的属性称为分类器(该属性不是主键),它由给定的字符串和连续的数字(这将是序列给出的值)组成,示例 FMFC-COMP-1234
目前我使用 postgres 创建序列
CREATE SEQUENCE seq_name START WITH 1;
但我希望我可以从 Spring Boot 创建它。欢迎任何帮助。预先感谢
您可以在实体类中使用以下标签
@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)
);