环境:
数据库用的是mysql,编译器是IDEA,用的springboot框架
问题:
自动创建表时,发现数据库里多了hibernate_sequence表
原因:
Java类中@GeneratedValue(strategy = GenerationType.AUTO)环境导致数据库保存的时候会生成hibernate_sequence表,用来记录其他表的主键。若删除该表,将报错could not read a hi value - you need to populate the table: hibernate_sequence,服务器重启时主键从1开始记录,由于数据库里有主键为1的数据,于是会报主键重复的错误。
解决方法:
将@GeneratedValue(strategy = GenerationType.AUTO)改为@GeneratedValue(strategy =
GenerationType.IDENTITY) 。
分析:
@GeneratedValue默认为@GeneratedValue(strategy = GenerationType.AUTO)主键增长方式,当数据库选择AUTO方式时就会自动生成hibernate_sequence表。
JPA之@GeneratedValue注解:
( https://blog.csdn.net/u012493207/article/details/50846616)
————————————————
版权声明:本文为CSDN博主「重点保护废物」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhangli0910/article/details/83580855