首页 > 解决方案 > @GetMapping 返回列表为空的字符串信息

问题描述

有时可能会发生,在数据库中什么都没有,方法 .findAll() 没有可显示的内容并返回空主体。我知道我有这个函数“列表”的返回类型,我不能直接返回字符串,但是如果列表为空,我如何发送响应正文作为字符串或 JSON,让用户知道?我想向接收者提供数据库为空的信息,这样他就清楚了。

类注释是

@RestController
@RequestMapping(path = "/users")

代码示例:

@GetMapping
public Iterable<User> findAll() {
    List<User> userList = userRepository.findAll();
    if(userList.isEmpty()){
        // return "This list is empty :(";
    }
    return userList;
}

标签: javarestcontrollerresponse

解决方案


这或多或少是你可能在前端做的事情。但是,如果需要,您可以返回一个 POJO,其中包含 List 和表示有关 List 的消息的 String。

class UserFindAllResponse {

    private final List<User> users;

    private final String message;

    // constructor, getters

}
@GetMapping
public UserFindAllResponse findAll() {
    List<User> userList = userRepository.findAll();

    return new UserFindAllResponse(userList, userList.isEmpty() ? "There appears to be no users" : "There are x users");
}

推荐阅读