我有一个用户实体和一个带有一个用户到多个帖子关系的Post实体。为了获得用户资源,我向UserController中的这个端点发出一个GET请求
http://localhost:8080/users/{userId}如果请求的userId不对应于MySQL中的用户,则通过UserService类(下面的代码)抛出一个异常,一个404用户找不到错误。
public User getUser(Integer id) throws ResourceNotFoundException{
return userRepository.findById(id).map(user -> {
return user;
}).orElseThrow(() -> new ResourceNotFoundException("User with the ID " + id + " is not available"));
}现在,为了获得PostController上的Post资源,我使用了这个端点
http://localhost:8080/users/{userId}/posts/{postId}我的问题:如果我向一个不存在的用户请求一个Post (不管这是什么)怎么办?最好的逻辑是再次抛出404用户未找到的错误,还是Post未找到?如果是这样的话,我如何组合UserService getUser(id)和PostService getPost(id)来抛出错误?
发布于 2018-11-20 18:37:31
实际上,这取决于如何映射用户和post之间的关系。
如果是双向关系,级联类型都是,那么在删除用户的同时,用户创建的所有帖子也将被删除。
因此,如果是上述情况,那么您只需检查DB中的用户,如果未找到,则显示用户未找到。
此外,您还应该执行推荐的方法,使用soft delete删除用户。
https://stackoverflow.com/questions/53399286
复制相似问题