전체 보기
🍀

OnDeleteAction.CASCADE, findByXX vs findByXXId 성능 차이, 설정 파일 분리

작성일자
2023/06/27
태그
DIARY_DEVELOP
프로젝트
FIS
책 종류
1 more property

OnDeleteAction.CASCADE

@ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") @OnDelete(action = OnDeleteAction.CASCADE) // 카테고리 삭제 시 회원도 함께 삭제 private Member member; // 회원 고유 번호
Java
복사
갑자기 Ondelete 어노테이션으로 CASCADE 조건을 줄 경우 카테고리 삭제 시 회원이 삭제되는 것인지 회원 삭제 시 카테고리가 삭제되는 건지 헷갈렸다,,,,
찾아본 결과, 카테고리 삭제 시 회원이 함께 삭제되어버리는 것이었다. 우리 팀 기획에선 카테고리가 삭제되어도 회원은 그대로 유지되어야 하기 때문에 해당 어노테이션은 제거해주었다.

findByXXX vs findByXXXId 성능 차이

서론)
기존의 One To Many 관계로 맺어진 필드를 지우고, JPA에서 직접 찾아오는 과정을 진행하며 궁금해진 부분이다.
본론)
 findByMemberId는 Member 테이블의 컬럼들만 조회하는데도 불구하고 left outer join을 걸어서 조회를 해와서 findByMember 보다 성능 더 안 좋음

설정 파일 분리