이번 배달 어플 API 팀 프로젝트를 하면서 고민했던게 가게나 메뉴, 주문등이 삭제되면 고아객체를 어떻게 관리할 것인가? 였다.
강의에서 Cascade와 OrphanRemoval를 배워서 고아객체에 대한 개념을 알기 때문에 이 부분에 대해서 논의를 해봤다.
논의
실제 서비스를 한다고 가정했을때, 메뉴가 삭제되거나, 가게가 삭제된다고 해서
주문과 리뷰등이 사라진다면 어떤 문제가 일어날까?
사업자가 정산을 받거나, 추후에 세금 계산 할 때 누락이 되는 등 갖가지 문제가 일어날 수 있다.
이런 문제를 어떻게 해결할까?
간단한 해결법
엔티티에 Boolean 타입으로 isDeleted 필드를 추가해주었다.
이렇게 하면 위에서 논의한 문제들을 간단하게 해결할 수 있다
조회를 할 때도 isDeleted true만 제외하고 조회를 하면된다.
실제 현실 서비스에서도 회원들이 삭제된 데이터를 요구하는 경우가 많기 때문에 이런 방식으로 구현하는 경우가 많다고 한다.
'TIL' 카테고리의 다른 글
TIL 2023-12-13 AOP Logging 구현 (0) | 2023.12.13 |
---|---|
TIL 2023-12-12 왜 Service를 인터페이스와 구현체로 나눌까? (0) | 2023.12.12 |
TIL 2023-12-08 getWriter() has already been called for this response (0) | 2023.12.08 |
TIL 2023-12-07 Refresh Token 쓰는 이유 및 DB로 Redis를 쓰는 이유 (0) | 2023.12.07 |
TIL 2023-12-06 jwt 로그인 시 unsuccessfulAuthentication로 계속 빠진다면? (0) | 2023.12.06 |