인프런 커뮤니티 질문&답변

woo님의 프로필 이미지
woo

작성한 질문수

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

JPA를 이용한 사용자 추가와 삭제 - HTTP POST/DELETE method

퀴즈 완료 후 질문드립니다

작성

·

247

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

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

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

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

감사합니다.

woo님의 프로필 이미지
woo

작성한 질문수

질문하기