Spring数据 - JPA,缺少ID

时间:2015-08-17 12:02:16

标签: java mysql spring jpa spring-data

我们正在使用一个spring数据项目,我们有一个mysql数据库。 最近我们在USER表中注意到以下内容:

id  |   name |  pass | email
=====================================
1      John      123     john@gmail.com

2      Joe      456       joe@gmail.com

3      .....

4   ....

6 ...

很明显我们的数据库中缺少id = 5.

  1. 可能是什么原因?请记住,我们正在使用@transactional服务和dao。

  2. Spring数据是否可以使用这些跳过的ID创建新条目? (可能配置?)

1 个答案:

答案 0 :(得分:1)

id get'保留'当您发出insert语句时,但执行插入直到提交事务为止;如果在此之前抛出异常,则事务将回滚,不执行插入,因此不使用保留的id。所有这一切都假设您正在使用自动增量。

可能还有其他原因,但特别是这个原因发生在我身上,虽然这对我来说不是一个问题。

编辑:这在Postgres发生在我身上,但我认为它也发生在mysql上;自从我上次使用它已经有一段时间了。

此外,您可以查看您的JPA提供商有关@GeneratedValues

的文档