在一个spring boot应用程序中,我有这样一个实体
@数据@NoArgsConstructor @AllArgsConstructor @实体公共类用户{
@Id
@GeneratedValue(generator="user_id_seq")
@SequenceGenerator(name="user_id_seq",sequenceName="user_id_seq", allocationSize=1)
Long id
...
}
在mariadb中,当我检查序列时
CREATE OR REPLACE SEQUENCE `user_id_seq` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 cache 1000 nocycle ENGINE=InnoDB
在数据库中,我只有5个用户。
select id from `user` u
本查询返回
1002 1004 1005 2007年3001
为什么不是1 2 3 4 5
是因为缓存1000吗?
1条答案
按热度按时间w41d8nur1#
是的,这是因为缓存。缓存中的数字在关闭时被丢弃,甚至表缓存关闭序列。
如果还没有bug report,请创建一个。关闭表格时保存一个数字是一个相当简单的修复方法。