이것저것
엔티티 매핑시 주의점 본문
1. FK 가 있는 곳을 연관 관계의 주인으로 정합니다.
ex)
1:M 관계에서 항상 M쪽에 FK 존재하므로, FK가 있는 M을 연관관계의 주인으로 정한다.
(1을 연관 관계의 주인으로 설정해도 괜찮지만 유지보수 측면에서 어렵고, 성능 문제가 발생 가능)
2. @Getter는 가급적 열어두고 @Setter는 꼭 필요한 경우에만 사용합니다.
3. Many To Many 관계의 사용을 지양합니다.
Many To Many는 중간 엔티티로 매핑에서 사용 (Many To Many -> One To Many & Many To One으로 풀어내서 사용)
4. 값 타입(@Embeddable)은 변경 불가능하게 설계
@Setter를 제거하고, 생성자에서 값을 모두 초기화해서 변경 불가능한 클래스로 만든다.
5. 모든 연관관계 지연로딩(LAZY) 로 설정
즉시 로딩(EAGER)은 예측이 어렵고, 어떤 SQL이 실행될지 추적하기 어렵다.
연관된 엔티티를 함께 DB에서 조회해야하는 경우, fetch join 또는 엔티티 그래프 기능을 사용
'Spring Boot' 카테고리의 다른 글
프록시와 연관관계 정리 (0) | 2021.02.17 |
---|---|
Spring Boot - Postman 사용시 Response Body 한글 깨짐 (0) | 2021.01.07 |
Spring Boot - MVC (0) | 2021.01.07 |
Comments