您的位置:首页 > 产品设计 > UI/UE

Table 'XXX.hibernate_sequence' doesn't exist

2018-08-02 23:14 756 查看
开发项目种遇到一个问题 Table 'text.hibernate_sequence' doesn't exist ,因为项目使用 springboot 集成 jpa ,这里分享下解决方法。

只需要根据项目使用数据库更改主键生成策略即可

@GeneratedValue(strategy = GenerationType.IDENTITY) // 主键自增长


补充:

JPA 提供的四种标准用法为 TABLE,SEQUENCE,IDENTITY,AUTO
TABLE:使用一个特定的数据库表格来保存主键。
SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。
IDENTITY:主键由数据库自动生成(主要是自动增长型)
AUTO:主键由程序控制。
在指定主键时,如果不指定主键生成策略,默认为 AUTO。
注解 @Id

@Id
private Integer id;

相当于
@Id
@GeneratedValue(strategy = GenerationType.AUTO)

@Id
@GeneratedValue(strategy = GenerationType.AUTO) //主键生成策略交给持久化引擎
private Integer id;

identity:
使用 SQL Server 和 MySQL 的自增字段,这个方法不能放到 Oracle 中,Oracle 不支持自增字段,要设定 sequence(MySQL 和 SQL Server 中很常用)。
Oracle就要采用 sequence 了。

同时,也可采用 uuid,native 等其它策略。(相关用法这里不细说了,自行上网查询)

水平有限,若有问题请留言交流!

互相学习,共同进步:) 转载请注明出处谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息