服务层中的Spring意外行为

时间:2018-06-17 07:08:23

标签: spring exception caching transactional

调用从数据存储库中删除的方法时遇到问题。

在我的服务层中,我有两种方法:

@Override
public User findById(long id) {
    List<User> users = userRepository.readUsers();
    return users.stream()
            .filter(u -> u.getId() == id)
            .findFirst()
            .orElseThrow(NoSuchElementException::new);
}

@Override
@CachePut(value = "users")
@Transactional
public void deleteUserById(long id) {
    userRepository.deleteUser(id);
}

问题在于,当调用deleteUserById时,不知何故也会调用foundById并引发一个我在@ControllerAdvice中捕获的异常。

检查数据库时删除成功,但执行调用时,响应是ControllerAdvice中的错误。

1 个答案:

答案 0 :(得分:0)

发现问题,我在删除用户后在其他地方调用了findById。蛮横的错!抱歉。谢谢你的时间。