• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

퀴즈 완료 후 질문드립니다

23.12.25 03:12 작성 조회수 180

0

// UserAndCountResponse.java
@AllArgsConstructor
@ToString
@Data
public class UsersAndCountResponse {
    private int count;
    private List<User> users;
}

// UserJPAController.java
@GetMapping("/usersAndCount")
    public UsersAndCountResponse retrieveAllUsersAndCount(){
        List<User> users = userRepository.findAll();
        int count = users.size();
        System.out.println(new UsersAndCountResponse(count, users));

        return new UsersAndCountResponse(count, users);
    }

 

 

 

 

UserAndCountResponse.java 파일을 exception 혹은 response 폴더에 생성하여 다음과 같은 코드를 작성하였고, 406 error가 발생하였으나 @Data 어노테이션 추가하자 잘 동작했습니다

 

그런데 문제의 의도는 ResponseEntity 부분에 두 정보를 포함하는 것 같은데, 관련 키워드로 찾아봐도 복수의 응답을 포함하는 방법을 찾을 수 없었기에 질문드립니다

답변 1

답변을 작성해보세요.

0

안녕하세요, 이도원입니다.

Java에서는 메서드를 실행한 다음 반환 값으로 한가지 데이터 유형만을 허용하기 때문에, 복수 개의 반환 값을 반환하기 위해서는 전달하고자 하는 반환 값들을 한곳에 저장할 수 있는 형태의 새로운 객체 타입이나, 배열과 같은 형태로 변환하여 반환할 수 있습니다. ResponseEntity에 사용자 수와 사용자 데이터 2가지를 반환하기 이위해 작성하신 것처럼 UsersAndCountResponse와 같은 객체를 만드는 것도 가능하고, Object[] 타입의 데이터에서 0번째 인덱스에는 count를 1번째 인덱스에는 List 객체를 저장하여 반환해 볼 수도 있습니다.

감사합니다.