[英]Spring transactional annotation rollback test doesn't seem to go well
這是 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
(而不是 null 指針)。
public T get()
如果此
Optional
中存在值,則返回該值,否則拋出NoSuchElementException
...。
通過rollbackFor = NullPointerException.class
您可以將NoSuchElementException
從可回滾的異常中排除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.