작성
·
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);
}
그런데 문제의 의도는 ResponseEntity 부분에 두 정보를 포함하는 것 같은데, 관련 키워드로 찾아봐도 복수의 응답을 포함하는 방법을 찾을 수 없었기에 질문드립니다
답변 1
0
안녕하세요, 이도원입니다.
Java에서는 메서드를 실행한 다음 반환 값으로 한가지 데이터 유형만을 허용하기 때문에, 복수 개의 반환 값을 반환하기 위해서는 전달하고자 하는 반환 값들을 한곳에 저장할 수 있는 형태의 새로운 객체 타입이나, 배열과 같은 형태로 변환하여 반환할 수 있습니다. ResponseEntity에 사용자 수와 사용자 데이터 2가지를 반환하기 이위해 작성하신 것처럼 UsersAndCountResponse와 같은 객체를 만드는 것도 가능하고, Object[] 타입의 데이터에서 0번째 인덱스에는 count를 1번째 인덱스에는 List 객체를 저장하여 반환해 볼 수도 있습니다.
감사합니다.