gpt4 book ai didi

java - 如何解决 OptimisticLockingFailureException?

转载 作者:行者123 更新时间:2023-11-29 10:01:03 31 4
gpt4 key购买 nike

触发OptimisticLockingFailureException的代码:

@Test
public void shouldIncrementUserTotalLikesByOne() throws IllegalArgumentException, UserNotFoundException {
databuilderService.createAll();

User user = userService.findByEmail("abc@gmail.com");

long numberOfLikeCount = user.getLikeCount();

userService.incrementUserTotalLikesByOne(user.getId());

userService.save(user);

long numberOfUpdatedUpdatedCount = user.getLikeCount();

Assert.assertNotNull(numberOfUpdatedUpdatedCount);

Assert.assertEquals(numberOfUpdatedUpdatedCount, numberOfLikeCount+1);
}

调用UserService.save()时出现异常:

org.springframework.dao.OptimisticLockingFailureException:保存实体时的乐观锁异常:

最佳答案

我的模型有问题。我添加了 @Version 注释,但错误地存在错误的字段类型,并且在写入 MongoDB 期间发生转换过程并抛出 OptimisticLockingFailureException 异常。

将@Version 注释的字段形式 long 类型更改为 Long 类解决了我的问题:

import org.springframework.data.annotation.Version

@Version
private Long version

这篇博客文章提供了更多详细信息:https://aodcoding.wordpress.com/2015/07/06/preventing-lost-updates-in-mongo-with-spring-optimistic-locking/

关于java - 如何解决 OptimisticLockingFailureException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27961402/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com