2월 22일 JPA 회원조회 V2
@GetMapping("/api/v2/members")
public Result MemberV2(){
List<member> findMembers = memberService.findMembers();
List<memberDTO> collect = findMembers.stream()
.map(m -> new MemberDTO()) //스트림의 값(m)을 각각 MemberDto로 생성
.collect(collectors.toList()); // 가공이 끝난 Stream을 List로 변경
//실질적으로 collect는 현재 list 상태이다.
return new Result (Collect.size() , collect); //result로 감싸서 반환
}
@Data
@AllArgsConstructor
static class result<T>{ //<T> 클래스 제네릭은 해당 클래스에 들어올수 있는 타입을 지정 T는 Object전체
private int count;
private T data;
}
//result<T> 는 위 결과 collect를 Object로 한번더 감싸기 위한 용도 ,
json을 배열인상태로 반환해서는 안된다.
실제 출력에 필요한 필드들을 여기에 명시한다.
@Data
@AllArgsConstructor
static class MemberDTO{
private String name;
}
//List로 만들 요소로 List에 추가할 필드값을 추가한다.
결과를 Stream > List로 만듬 > Obejct로 감싸준다 > Json 형태로 반환
*절대 값을 엔티티그대로 반환해서는 안된다.