环境:JDK8、SpringBoot、JPA
今天测试环境发现一个代码bug,插入数据报错,查看日志异常信息:主键重复
找到错误代码出,设置了序列:
@SequenceGenerator(name = "id_seq", sequenceName = "MY_TABLE_SEQ")
查询数据库对比表MY_TABLE最大ID和MY_TABLE_SEQ序列生成的值,确保序列大于表的ID;
本地反复调试,生成的ID没有按照MY_TABLE_SEQ获取值;
后对比了其他模块的功能代码,对比修改成:
@SequenceGenerator(allocationSize = 1, name = "id_seq", sequenceName = "MY_TABLE_SEQ")
重启测试,功能正常,bug修复,日志也打印了MY_TABLE_SEQ序列的查询SQL;
allocationSize 属性含义,之后查询资料再补充