开发项目种遇到一个问题 Table 'text.hibernate_sequence' doesn't exist ,因为项目使用 springboot 集成 jpa ,这里分享下解决方法。
只需要根据项目使用数据库更改主键生成策略即可
@GeneratedValue(strategy = GenerationType.IDENTITY) // 主键自增长
补充:
JPA 提供的四种标准用法为 TABLE,SEQUENCE,IDENTITY,AUTO
TABLE:使用一个特定的数据库表格来保存主键。 SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。 IDENTITY:主键由数据库自动生成(主要是自动增长型) AUTO:主键由程序控制。 在指定主键时,如果不指定主键生成策略,默认为 AUTO。 注解@Idprivate Integer 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 等其它策略。(相关用法这里不细说了,自行上网查询)
水平有限,若有问题请留言交流!
互相学习,共同进步:) 转载请注明出处谢谢!