1. 엔터티 설계에서는 가급적 Setter를 사용하지 않는다.
2. 모든 연관관계는 Lazy로 세팅한다.
- Eager로 많이엮여있으면 하나를 가져올 때 모두를 가져오는 문제가 생길 수 있다.
- Lazy + [fetch join/entity graph] 을 사용해라
- 특히 JPQL을 사용할 때 N+1 문제가 자주 발생한다.
- @XToOne(OneToOne, ManyToOne) 은 기본 전략이 Eager이므로 꼭 Lazy로 설정해야한다.
3. 컬렉션은 필드에서 초기화해라
4. 하이버네이트 테이블, 컬럼명 생성 전략 (SpringPhysicalNamingStrategy)
- camelCase -> underscore
- 점(dot) -> underscore
- 대문자 -> 소문자
5. Cascade
'강의 정리 > 스프링 부트와 JPA 활용 1' 카테고리의 다른 글
3. 변경 감지와 병합 (0) | 2021.01.05 |
---|---|
1. 환경설정 (0) | 2020.12.25 |