java Spring数据JPA,缺少ID
我们使用的是spring数据项目,我们有一个mysql数据库。 最近,我们注意到用户表上有以下内容:
id | name | pass | email
=====================================
1 John 123 john@gmail.com
2 Joe 456 joe@gmail.com
3 .....
4 ....
6 ...
显然,我们的数据库中缺少id=5
原因可能是什么?请记住,我们使用的是@transactional services和dao
spring数据可以使用这些跳过的ID创建新条目吗?(也许是配置?)
# 1 楼答案
当您发出
insert
语句时,id会被设置为“reserved”,但插入操作会一直执行到提交事务为止;如果在此之前引发异常,则事务将回滚,不会执行插入,因此不会使用保留id。所有这些都是假设您使用自动增量可能还有其他原因,但这一点尤其发生在我身上,虽然对我来说并不是什么问题
编辑:这在我的Postgres上发生过,但我认为在mysql上也发生过;我已经有一段时间没用了
此外,您可以在
@GeneratedValues
上查看JPA提供商的文档