본문 바로가기

JPA

2월 22일 JPA 회원수정 API(Rest 스타일)

put스타일 , put은 멱등 , 몇번을 실행해도 같은 결과를 반환

 

1.Reponse,Request DTO만들기

 

//request로 받는 용도의 DTO

@Data

static class updateMemberRequest{

 private String name;

}

 

//response 반환용 DTO

@Data

@AllArgsConstruct //객체의 모든 필드값을 인자로 받는 생성자를 생성한다.

static class updateMemberResponse{

 private Long id;

 private String name;

}

 

@PutMapping("/api/v2/members/{id}")

public updateMemberResponse updateMemberV2(

@pathVariable("id") Long id , //파라미터에 {id}위치의 값을 변수로 사용

@RequestBody @Valid updateMemberRequest request){ //받은값을 updateMemberRequest로 받는다. 

 

memberService.update(id , request.getName()); //서비스에 업데이트 로직

 

Member findMember = memberService.findOne(id); // 업데이트 완료된 엔티티를 받아온다.

 

return new UpdateMemberResponse(findMember.getId() , findMember.getName());

//결과용 DTO에 엔티티를 넣어 값을 반환

 

}

 

Service

@Transaction //트랜잭션 처리단위

public void update (Long id , String name){

 Member member = memberRepository.findOne(id)l

 //id 값으로 영속성관리중인 엔티티를 찾아와서 값을 변경 , 그럼 변경감지로 인해 update되게 된다.

 member.setName(name); // 값변경

}

'JPA' 카테고리의 다른 글

2월 22일 JPA 회원조회 V2  (0) 2023.02.22
2월 22일 JPA 회원조회 API  (0) 2023.02.22
2월 21일 회원조회 API v2  (0) 2023.02.21
2월 21일 JPA API개발 기본 v1  (0) 2023.02.21
2월 20일 JPA JPQL- 벌크연산  (0) 2023.02.20