1.더미 데이터 delete
@DeleteMapping("/dummy/user/{id}")
public String delete(@PathVariable int id){
try {
userRepository.deleteById(id);
// } catch (Exception e){
// 좀 더 정확한 exception 확인
} catch (EmptyResultDataAccessException e){
return "삭제에 실패하였습니다. 해당 id는 db에 없습니다.";
}
return "삭제되었습니다. id :"+id;
}
삭제에서 일어날 수 있는 오류 중 대표: 없는 데이터 넣었을 때
그래서 정확한 오류를 적으려면
EmptyResultDataAccessException
귀찮으면 그냥 EXCEPTION
1-1.사용자에게 보이는 Exception처리
package com.cos.blog.handler;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestController;
//ControllerAdvice : 이 컨트롤러가 어떤 클래스에서 exception이 발생하든 처리 가능하다
@ControllerAdvice
@RestController
public class GlobalExceptionHandler {
// 모든 에러를 스프링이 감지해서 이 메소드로 보내줌
@ExceptionHandler(value = Exception.class)
public String handleArgumentException(Exception e){
return "<h1>"+e.getMessage()+"</h1>";
}
}
2. 무한 참조 방지하기
(1) Entity로 받고 Json직렬화 하기 전에 DTO 생성후 복사하기
BeanUtils.copyProperties(A,B)
(2) 처음부터 DTO로 DB에서 받기
(3) @JsonIgnore
(4) @JsonIgnoreProperties({"board"})
(5) @JsonBackReference @JsonManagedReference
참고
'프로젝트 > 개인' 카테고리의 다른 글
7. 회원가입 세팅+ api없는 회원가입 (0) | 2023.07.31 |
---|---|
6. 프론트 (bootstrap4)- 화면 만드는 대로 수정 (0) | 2023.07.31 |
4. JSON 사용법+ 회원가입 위한 INSERT 테스트 (0) | 2023.07.28 |
3. jpa로 테이블 생성하기 (0) | 2023.07.25 |
2.yaml, yml(야믈..?) 설정 (0) | 2023.07.25 |