gpt4 book ai didi

java - Spring事务注解回滚测试好像不太顺利

转载 作者:行者123 更新时间:2023-12-04 14:46:08 25 4
gpt4 key购买 nike

这是 Controller 代码:

@GetMapping("/test/hello")
public String test() {
Member m = memberService.transactionTest();
return "haha";
}

这是服务代码:

   @Transactional(rollbackFor = NullPointerException.class)
public Member transactionTest() {
Member m = Member.builder()
.username("rollback")
.age(32)
.team(teamRepository.findById(1L).get())
.coach(coachRepository.findById(1L).get())
.build();
memberRepository.save(m);
exception();
return m;
}

public void exception(){
Member m = null;
m.getUsername();
}

据我所知,当它完成时应该回滚因为发生 RuntimeException 但插入过程运行良好所以我想知道为什么。

最佳答案

因为 Optional.get() 抛出 NoSuchElementException(而不是空指针)。

From javadoc :

public T get()

If a value is present in this Optional, returns the value, otherwise throws NoSuchElementException....

通过 rollbackFor = NullPointerException.class,您可以从可回滚异常中排除 NoSuchElementException

关于java - Spring事务注解回滚测试好像不太顺利,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70020783/

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