hibernate找不到postgresql序列

5us2dqdw  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(374)

我在做一个springboot项目。我拥有以下实体:

@Entity
@Table(name = "authors")
public class Author {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "author_seq")
    @SequenceGenerator(name = "author_seq", 
        sequenceName = "authors_authorid_seq", schema = "public")
    private int authorid;
    private String name;
    private String surname;

    public Author() {
    }

    public int getAuthorid() {
        return authorid;
    }

    public void setAuthorid(int authorid) {
        this.authorid = authorid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSurname() {
        return surname;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

}

数据库中有以下序列:
authors_authorid_seq bookborrow_id_seq books_bookid_seq users_userid_seq 我得到以下错误: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing sequence [public.authors_authorid_seq] 你能帮我解释一下我做错了什么吗?我的hibernate版本是5.4.25。谢谢

vyswwuz2

vyswwuz21#

我通过在init\u db.sql脚本中手动创建序列解决了这个问题。
在导致错误的上一个版本中,我创建了导致错误的主键,如下所示:

authorid int4 NOT NULL GENERATED BY DEFAULT AS IDENTITY

这会自动创建一个序列,但是pgadmin4和hibernate库无法检测到它。
现在我创建的主键列如下所示:

authorid int4 NOT NULL DEFAULT nextval('authors_authorid_seq').

这样hibernate就可以检测序列。

相关问题