본문 바로가기
Study/Spring

회원 수정 기능 구현 | Spring Spring boot JPA Study

by M개발자 2022. 2. 10.
반응형

✔ Java 11

✔ Gradle 7

✔ Spring boot 2.6.3

회원 수정 기능 구현

1. UpdateUserRequestDto

수정할 데이터를 받아오기 위해 request dto를 추가했다.

@Getter
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class UpdateUserRequestDto {

    @NotNull
    String user_password;
    @NotNull
    String user_name;

}

put 메소드를 사용할 시 클라이언트가 해당 정보를 모두 안다는 가정이 필요하다.

그래서 바꾸고 싶은 데이터만 받아와 변경할 수 없고 필요한 데이터를 모두 받아야 한다.

2. Controller - put

@PutMapping("/{id}")
    public void updateUser(@PathVariable @Valid long id, @RequestBody UpdateUserRequestDto updateUserRequestDto){
        userMinjService.updateUser(id, updateUserRequestDto);
    }

3. Service - updateUser

@Transactional
    public void updateUser(long id, UpdateUserRequestDto updateUserRequestDto){
        UserMinj userMinj = userRepository.findById(id).orElseThrow();
        userMinj.updateUser(updateUserRequestDto.getUser_password(), updateUserRequestDto.getUser_name());
    }

먼저 id가 유효한지 확인을 한다. 존재하지 않는 id라면 예외 처리를 한다. 아직 구현하지는 않았다.

User entity에 업데이트 메소드를 구현하여 매개변수로 password와 name을 받는 형식으로 구현했다.

User entity

public void updateUser(String user_password, String user_name){
        this.user_password = user_password;
        this.user_name = user_name;
    }

 


회의록

반응형

댓글