我有以下情况:
如果我运行测试链,我会从hibernate中随机获取CannotAcquireLockExceptions和DuplicateKeyExceptions。似乎存在死锁以及两个事务都在寻找条目而没有找到它并且在第二个事务试图为唯一密钥外部id持久保留新条目时崩溃的情况。
我对如何解决这个问题感到很遗憾。非常感谢任何想法。
/编辑:显示我所做的一些代码:
Integer idInt = mapExtToInt(idExt); // select
if (idInt == null) {
idInt = callIdService(); // get id from id service
createIntExtMapping(idInt, idExt); // save
}
当然可以有几个使用相同idExt的测试。
/ Edit2:我设法让它不那么经常发生,但问题仍然存在。在执行此测试类中的下一个事务之前,我在每个事务(传播= REQUIRES_NEW)之后添加了一个flush。任何意见都非常感谢。