5. 더미데이터 delete테스트+exception처리+ 무한참조방지

2023. 7. 30. 22:58·프로젝트/블로그 제작(중단)

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처리

handler 패키지 추가

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>";
    }


}

이제 user에게 white label 오류페이지를 보여주지 않는다.

 

2. 무한 참조 방지하기

(1) Entity로 받고 Json직렬화 하기 전에 DTO 생성후 복사하기

BeanUtils.copyProperties(A,B) 

(2) 처음부터 DTO로 DB에서 받기

(3) @JsonIgnore

(4) @JsonIgnoreProperties({"board"})

(5) @JsonBackReference @JsonManagedReference 

 

참고 

https://dublin-java.tistory.com/32 

저작자표시 (새창열림)

'프로젝트 > 블로그 제작(중단)' 카테고리의 다른 글

7. 회원가입 세팅+ api없는 회원가입  (1) 2023.07.31
6. 프론트 (bootstrap4)- 화면 만드는 대로 수정  (1) 2023.07.31
4. JSON 사용법+ 회원가입 위한 INSERT 테스트  (0) 2023.07.28
3. jpa로 테이블 생성하기  (3) 2023.07.25
2.yaml, yml(야믈..?) 설정  (1) 2023.07.25
'프로젝트/블로그 제작(중단)' 카테고리의 다른 글
  • 7. 회원가입 세팅+ api없는 회원가입
  • 6. 프론트 (bootstrap4)- 화면 만드는 대로 수정
  • 4. JSON 사용법+ 회원가입 위한 INSERT 테스트
  • 3. jpa로 테이블 생성하기
니누고
니누고
주니어 개발괴발자
  • 니누고
    진땡이코딩조림
    니누고
  • 전체
    오늘
    어제
    • 분류 전체보기 (93)
      • 편안한코딩생활 (12)
        • 오류 해결 일지 (6)
        • 기타등등 (6)
      • 백 (23)
        • jsp (1)
        • spring boot (7)
        • spring (7)
        • 전자정부프레임워크 (8)
      • 프로젝트 (13)
        • 블로그 제작(중단) (12)
      • 프론트 (3)
        • javascript (3)
      • 데이터베이스 (6)
        • oracle (5)
        • 그 외 (1)
      • cs (6)
        • java (4)
        • cs (1)
        • C (1)
      • 코테 (26)
        • java (25)
        • sql (1)
      • 앱 (0)
        • flutter (0)
        • dart (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    iBatis
    jpa #springboot
    컴퓨터용량줄이기
    스프링의 기본 파싱전략
    오블완
    Oracle
    egov
    코딩테스트
    티스토리챌린지
    CRUD
    tomcat
    배열
    가장 큰 수 찾기
    프로그래머스
    배열 회전시키기
    전자정부프레임워크
    Java
    apache
    oracle함수
    카카오 블라인드 채용
    mod_jk.log
    Eclipse
    2017팁스다운
    문자열 정렬하기
    중복된 문자 제거
    JPA
    함수
    SpringBoot
    spring
    대문자와소문자
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
니누고
5. 더미데이터 delete테스트+exception처리+ 무한참조방지
상단으로

티스토리툴바