JPA

JAVA Stream을 이용해서 모든회원정보 추출

MIN우 2023. 1. 7. 12:33
728x90

 

다음과 같은 코드는 rest api 를 작성한 코드입니다.

@GetMapping("/api/v2/members")
public Result memberV2(){
    List<Member> findMembers=memberService.findMembers();

    List<MemberDto> collect=findMembers.stream()
            .map(m-> new MemberDto(m.getName()))
            .collect(Collectors.toList());

    return new Result(collect.size(), collect);
}

@Data
@AllArgsConstructor
static class  Result<T>{
    private int count;
    private T data;
}
@Data
@AllArgsConstructor
static class MemberDto{
    private String name;

}

 Entity를 이용하지않고 DTO클래스는 만들어주고.

각각의 Entity의 정보가 담길수 있도록 제네릭타입으로 선언해주었다.

 

Entity에서 모든유저의 정보 가져오기

List<Member> findMembers=memberService.findMembers();

 

java8의 stream을 이용해서 MemberDto형태로 변환시켜준다.

List<MemberDto> collect=findMembers.stream()
        .map(m-> new MemberDto(m.getName()))
        .collect(Collectors.toList());

제네릭 타입으로 반환

return new Result(collect.size(), collect);

 

 

제네릭 참고자료: https://m.blog.naver.com/justkukaro/220875157548

728x90