有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

  1. 原因可能是什么?请记住,我们使用的是@transactional services和dao

  2. spring数据可以使用这些跳过的ID创建新条目吗?(也许是配置?)


共 (1) 个答案

  1. # 1 楼答案

    当您发出insert语句时,id会被设置为“reserved”,但插入操作会一直执行到提交事务为止;如果在此之前引发异常,则事务将回滚,不会执行插入,因此不会使用保留id。所有这些都是假设您使用自动增量

    可能还有其他原因,但这一点尤其发生在我身上,虽然对我来说并不是什么问题

    编辑:这在我的Postgres上发生过,但我认为在mysql上也发生过;我已经有一段时间没用了

    此外,您可以在@GeneratedValues上查看JPA提供商的文档