【发布时间】:2010-11-26 20:40:56
【问题描述】:
我今天遇到了一些奇怪的行为,想知道这是预期的还是标准的。我们正在对 MySQL5 使用 Hibernate。在编码过程中我忘记关闭交易,我想其他人可以联系。
当我最终关闭事务、运行代码并检查表时,我注意到以下内容。我一直错误地运行我的代码而没有关闭事务,因此没有导致插入实际的行,但是增加了自动增量代理主键值,所以我有一个间隙(即没有 id 字段值的行751 到 762)。
这是预期的还是标准的行为?可能会因数据库而异?和/或 Hibernate 自己的事务抽象是否对此有一些可能的影响?
【问题讨论】:
-
我知道答案,但这仍然是一个有趣的问题!
-
理想情况下,您的应用程序/设计不应该受到序列中任何间隙的影响 - 您永远不应该让自己陷入真正重要的情况
标签: java mysql hibernate transactions auto-increment