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 |