休眠(mysql)刷新与提交中的自动增量

Posted

技术标签:

【中文标题】休眠(mysql)刷新与提交中的自动增量【英文标题】:Auto increment in hibernate(mysql) flush vs commit 【发布时间】:2020-06-25 06:29:01 【问题描述】:

我们在每个线程中运行一个会话,它在一个表中创建和处理多个记录,这些记录的 id 为自动递增。 在处理过程中,我们正在刷新数据,并在线程结束时提交数据,但如果发生异常,我们会回滚该线程中的当前会话。

那么,在刷新与提交的情况下,自动增量将如何工作,如果在中间它会回滚,自动增量 id 会发生什么?

我试图找到它的详细信息,但没有找到任何东西。请帮忙!!

【问题讨论】:

为什么你不能只做一个实验,看看实际发生了什么。 【参考方案1】:

自动增量 id 在刷新后被“保留”,没有任何其他会话可以使用它 它不能以另一种方式工作。请参阅 jmucchiello 的 https://***.com/a/449387/4716980 很好的解释

【讨论】:

以上是关于休眠(mysql)刷新与提交中的自动增量的主要内容,如果未能解决你的问题,请参考以下文章

休眠自动增量

如何在休眠中映射自动增量字段?

多个数据库的休眠自动增量字段

自动递增值并使用休眠设置从 1 开始

使用休眠注释自动递增和用户定义的 id

hibernate - 如何在 mysql 和 oracle 数据库中设置自动增量?