spring BOOT 更新至2.0后,上到云端测试后,发现自动生成的主键有问题,如下:
主键没有按照表中的顺序递增,而是看似无规则的递增中。
参考了一下其他表也是这种状态,于是把问题定位在了 spring data jpa 生成主键的策略上:
之前都是AUTO让jpa自动的选择生成的方式
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
具体的主键策略生成规则详见:https://blog.youkuaiyun.com/li563868273/article/details/50038653
但是更新后它默认的使用的规则为
@GeneratedValue(strategy = GenerationType.SEQUENCE)
并且id生成策略是数据库全局的生成策略,而不是单表的id生成策略解决办法:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY
)
private int id;