解决:ERROR: relation "hibernate_sequence" does not exist 异常

       项目使用的事ssh框架;项目数据库由mysql迁移到pgsql,数据库迁移之后出现了hibernate序列不存在的问题。
在这里插入图片描述
       相关资料上讲,,Hibernate中的实体类使用native方式生成主键,native是由Hibernate根据使用的数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式。

       MySQL采用自增作为主键,而Oracle、pgsql、DB2数据库可能是没有类似的自增类型,因此需要一个名称为hibernate_sequence的序列做支持。也就是迁移之后需要手动创建一个。

注意: pgsql中是在模式下创建序列,一个模式中有,其他模式需要再创建(我是这样的滴)。

hibernate_sequence序列语句:

create sequence HIBERNATE_SEQUENCE
minvalue 100000
maxvalue 9999999999999999
start with 100060
increment by 1
cache 20;

       把这个模式创建完成之后,这个问题就解决了。

注释: 关于创建序列的属性意义,可以参考下面这篇博客。

PostgreSQL-9.6.8创建序列、修改序列、删除序列的语法教程

发布了10 篇原创文章 · 获赞 7 · 访问量 682

猜你喜欢

转载自blog.csdn.net/weixin_45439637/article/details/105040935