我遇到了 Spring JPA Data 和嵌套事务的问题。以下是我的服务的嵌套事务的两种方法。
@Service
public UserService {
@Transactional
public User createUser(UserDto userDto) {
....
user = saveUser(user);
sendEmail(user);
....
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public User saveUser(User user) {
return userRepository.save(user);
}
碰巧有一种情况,方法 userRepository.save() 应该抛出异常,但不知何故没有被抛出,看起来它正在等待父事务完成。我期待在 saveUser 方法和 sendEmail 方法上抛出异常,甚至不会执行。
因为该方法UserService.saveUser将传播设置为Propagation.REQUIRES_NEW我期望提交该事务(要执行的 SQL 语句)并且传播任何异常。
我没有设置任何与事务相关的东西,所以我相信刷新模式设置为自动。
谁能发现我做错了什么或我的误解是什么?
斯蒂芬大帝
相关分类