DevBoi

[JPA] 엔티티 설계시 주의사항 본문

Develop/[JPA]

[JPA] 엔티티 설계시 주의사항

HiSmith 2022. 3. 21. 17:04
반응형

1. Entity에는 가급적 Setter 사용을 하지 않는 것이 좋다.

- 변경 포인트가 너무 많으면 유지보수가 어렵다.

 

2. 모든 연관관게는 지연로딩으로 설계하자

- 즉시로딩은 예측이 어렵고, 어떤 SQL이 실행될지 추적이 어렵다. 그리고 JPQL을 실행할때 N+1 문제가 자주 발생한다.

만약 즉시로딩이 필요하면, Fetch join이나 엔티티 그래프 기능을 사용한다.

 

3. 컬렉션을 필드에서 초기화 하자

-컬렉션은 필드에서 바로 초기화 하는 것이 null 문제에서 안전하다.

-하이버네이트는 Entity를 영속화할때 컬렉션을 감싸서 하이버네이트가 제공하는 내장 컬렉션으로 변경한다.

 

4.테이블, 컬럼명 생성 전략

- 스프링 부트에서 하이버네이트 기본 매핑 전략을 변경해서 실제 테이블 필드명이 다르다.

 ( orderDate(객체) -> order_date(DB 컬럼) )

 

반응형

'Develop > [JPA]' 카테고리의 다른 글

[JPA] JPA 와 하이버네이트의 차이  (0) 2022.03.21
[JPA] Dto 사용이유  (0) 2022.03.21
[JPA] EntityGraph 란  (0) 2022.03.21
[JPA] Open session in view(OSIV)란  (0) 2022.03.21
[JPA] JPA 트랜잭션 사용  (0) 2022.03.20