반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- nestjs스터디
- 프로그래머스
- JPA 공부
- JPA
- 기술공부
- nestjs
- K8S
- 스프링부트
- 스프링공부
- DDD
- JPA공부
- 알고리즘공부
- 플러터 공부
- 기술면접공부
- 카프카
- Axon framework
- 플러터 개발
- querydsl
- 스프링부트공부
- Kafka
- JPA예제
- 자바공부
- 코테공부
- Flutter
- JPA스터디
- 코테준비
- 스프링 공부
- nestjs공부
- 자료구조공부
- 스프링
Archives
- Today
- Total
DevBoi
[JPA] 엔티티 설계시 주의사항 본문
반응형
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 |