반응형
✔ 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);
}
메소드 로직
- JPA 내장 메소드인 findById를 사용하여 아이디 유효성을 체크한다.
- 만약 없는 아이디일 경우 예외처리를 한다.
- 있는 아이디일 경우 JPA 내장 메소드인 deleteById를 사용하여 id에 해당하는 엔티티를 삭제한다.
문제점
예외처리를 적용하지 못하여 던질 수 있는 예외가 없다.
삭제 처리를 하면서 예외처리도 해주려고 했지만 내 욕심 때문인지 검색만으로 적용하는 건 버거웠다.
{
"status" : 404,
"message" : "user not found"
}
이와 같은 json 형식으로 만들어주고 싶었는데 실패했다.
그래서 모든 기능을 구현한 뒤 한 번에 예외 처리를 해주기로 결정했다.
반응형
'Study > Spring' 카테고리의 다른 글
회원 수정 기능 구현 | Spring Spring boot JPA Study (1) | 2022.02.10 |
---|---|
회원 조회 기능 | Spring Spring boot JPA Study (0) | 2022.02.08 |
회원 추가 기능 구현 | Spring Spring boot JPA Study (0) | 2022.02.07 |
2022.02.01 회의 - 1차 스프린트 산정 | Spring Spring boot JPA Study (0) | 2022.02.07 |
친구들이랑 진행하는 스프링 스터디 | Spring Spring boot JPA Study (0) | 2022.02.07 |
댓글