CannotAcquireLockException上的事务回滚

问题描述 投票:-2回答:1

我使用spring AOP + hibernate事务管理器来管理我的事务。在我的生产环境中,由于一些并行运行的作业,我得到了CannotAcquireLockException。

我有一个标题表和一个项目,当我尝试插入标题表时,项目由hibernate级联功能自动插入。因此,当我在项目表上运行CannotAcquireLockException时,唯一的标题是保存而不是项目,即使它们在同一个事务中。

不幸的是,我不应该分享我的代码,但如果您需要任何细节,请告诉我。

当我收到任何其他异常时,事务将被回滚。

java spring hibernate spring-jdbc
1个回答
0
投票

这是一个明确的僵局。这与DB错误更相关,而不是类的hibernate / Spring问题。我遇到类似的情况,其中一个线程在做Select而另一个线程试图插入/更新同一行。一些快速解决方案

  1. 使用Select ..对于Update sql query:这通常会获取特定索引的锁定,直到操作完成。
  2. 在DB方面:创建索引也有帮助。

希望这可以帮助。更多细节here

© www.soinside.com 2019 - 2024. All rights reserved.