Entity
엔티티의 개념과 특징
Entity란
: Entity 는 실제 데이터베이스의 테이블과 1:1로 매핑되는 클래스입니다
엔티티의 생명주기
- 비영속 : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태
- 영속 : 영속성 컨텍스트에 관리되는 상태
- 준영속 : 영속성 컨텍스트에 저장되었다가 분리된 상태
- 삭제 : 삭제된 상태
JPA에서 Entity를 설계할때 주의점
- Entity에는 가급적 Setter를 사용하지 말 것
- Entity가 영속성이 유지되는 도중 수정되면 그 값은 DB에 그대로 반영됩니다. 그런데 Setter를 열어두고 값을 변경하는 경우에는 변경 포인트가 많아 유지보수가 어려워 질 수 있습니다.
- 모든 연관관계는 지연로딩으로 설정한다
- 즉시로딩(EAGER)를 사용 할 경우, 연관관계가 맺어진 엔티티들도 조회를 하기 때문에 원하지 않는 쿼리가 발생합니다
- 컬렉션은 필드에서 바로 초기화하자
- Entity는 최대한 순수하게 유지해야한다!!!