如何使spring使用AUTO_INCREMENT创建列?

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

我正在使用Spring Boot,并创建了一个具有如下所示字段的表

@Id
@GeneratedValue
Long id;

但是创建的实际表是

CREATE TABLE users (
    id bigint PRIMARY KEY,
    first_name character varying(255),
    last_name character varying(255),
    password character varying(255),
    username character varying(255) UNIQUE
);

因此id列不具有AUTO_INCREMENT属性。

因此,当我尝试自己运行sql时,如果我这样做,就说要播种测试数据(使用flyway),就会出现问题。>

   INSERT INTO users (first_name, last_name, username, password) VALUES ('admin', 'admin', 'admin', 'password') ON CONFLICT DO NOTHING;

它将失败。除非有一种方法可以在没有AUTO_INCREMENT关键字的列上运行sql?

我使用的是Spring Boot,并创建了一个表,其中包含类似@Id @GeneratedValue Long id的字段;但是创建的实际表是CREATE TABLE用户(id bigint PRIMARY KEY,first_name ...

postgresql hibernate spring-boot flyway
1个回答
-1
投票

当以这种方式生成时,hibernate创建一个表hibernate_sequence因此您必须从此处阅读并增加下一个序列。

© www.soinside.com 2019 - 2024. All rights reserved.