如何解决通过ID无法恢复实体的问题?

时间:2019-11-04 13:46:58

标签: java spring spring-boot

我想从他的ID中恢复用户,为此,我编写了以下代码,但邮递员的测试返回错误500。我为您提供了错误的图片。

picture

//Recuperer un utilisateur
@GetMapping("/getUser/{id}")
public ResponseEntity findUserById(@PathVariable(name="id") Integer id) {
    if(id == null) {
        return ResponseEntity.badRequest().body("Impossible d'afficher un utilisateur avec un id null");
    }

    User user = userRepository.getOne(id);

    if(user == null) {
        return ResponseEntity.notFound().build();
    }

    return ResponseEntity.ok().body(user);
}

2 个答案:

答案 0 :(得分:0)

userRepository.getOne(id)引发异常。因此,行ResponseEntity.notFound().build();永远不会执行。

尝试使用try / catch。

或者,您可以使用findById(id)代替getOne(id)。它返回null而不抛出异常。

答案 1 :(得分:0)

如果未在表中找到数据,则findOne将返回null,而getOne()将抛出javax.persistence.EntityNotFoundException。 因此,我认为此处使用错误的方法,请尝试使用findById(id)而不是getOne(id)