본문 바로가기

JPA

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 형태로 반환

*절대 값을 엔티티그대로 반환해서는 안된다.

'JPA' 카테고리의 다른 글

2월 23일 JPA 간단한 주문조회 v2  (0) 2023.02.23
2월 22일 JPA API 개발 고급  (0) 2023.02.22
2월 22일 JPA 회원조회 API  (0) 2023.02.22
2월 22일 JPA 회원수정 API(Rest 스타일)  (0) 2023.02.22
2월 21일 회원조회 API v2  (0) 2023.02.21