이것저것

엔티티 매핑시 주의점 본문

Spring Boot

엔티티 매핑시 주의점

nays111 2021. 1. 15. 19:26

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