微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

@DataJpaTest 与 SpringBoot - 不抛出 OptimisticLocking 异常

如何解决@DataJpaTest 与 SpringBoot - 不抛出 OptimisticLocking 异常

我有使用 postgresql@DataJpaTest。不在内存中。

尝试测试乐观锁定异常。但它没有抛出异常。我对同一个数据库进行了类似的测试,但使用不同的架构,但使用 @SpringBoottest 可以正常工作。有什么想法吗?

@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@Slf4j
class MyApplicationTest {

@Autowired
private MyRepository myRepository;

@Test
void withOptimisticLockHandling_shouldThrowException() {
     PersonEntity entity = myRepository.saveAndFlush(createPerson(id));

    String id = entity.getId();

    PersonEntity update1 = myRepository.findById(id).get();
    PersonEntity update2 = myRepository.findById(id).get();

    update2.setName("Hello1");
    myRepository.saveAndFlush(update2);

    update1.setName("Hello2");
    assertThrows(ObjectOptimisticLockingFailureException.class,() -> myRepository.saveAndFlush(update1));
}

PersonEntity一个@Version 注释的字段,数据库一个字段 version

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。