본문 바로가기
Study/Spring

회원 삭제 기능 | Spring Spring boot JPA Study

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

✔ Java 11

✔ Gradle 7

✔ Spring boot 2.6.3

회원 삭제 기능 구현

1. Cotroller - delete

@DeleteMapping("/{id}")
	public void deleteUser(@PathVariable @Valid long id){
	    userService.deleteUser(id);
}

어노테이션 @PathVariable을 사용하여 파라미터로 id를 받는다.

어노테이션 @Valid도 함께 사용하여 파라미터 검증을 해준다.

 

@Valid 의존성 추가

build.gradle

implementation 'org.springframework.boot:spring-boot-starter-validation'

2. Service - 회원 삭제 메소드 구현

@Transactional
public void deleteUser(long id){
    // 없는 아이디일 경우 추후에 예외처리 진행
    //userRepository.findById(id).orElseThrow();
    userRepository.deleteById(id);
}

메소드 로직

  1. JPA 내장 메소드인 findById를 사용하여 아이디 유효성을 체크한다.
  2. 만약 없는 아이디일 경우 예외처리를 한다.
  3. 있는 아이디일 경우 JPA 내장 메소드인 deleteById를 사용하여 id에 해당하는 엔티티를 삭제한다.

문제점

예외처리를 적용하지 못하여 던질 수 있는 예외가 없다.

삭제 처리를 하면서 예외처리도 해주려고 했지만 내 욕심 때문인지 검색만으로 적용하는 건 버거웠다.

 

{
	"status" : 404,
	"message" : "user not found"
}

이와 같은 json 형식으로 만들어주고 싶었는데 실패했다.

그래서 모든 기능을 구현한 뒤 한 번에 예외 처리를 해주기로 결정했다.


회의록

반응형

댓글