이번에는 JPA에서 본격적으로 객체와 테이블을 매핑하기 위한 엔티티 매핑에 대해서 적어보았습니다!
📌영속성 컨텍스트
1. 매핑
- 객체와 테이블 매핑: @Entity, @Table
- 필드와 컬럼 매핑: @Column
- 기본 키 매핑: @Id
- 연관관계 매핑: @ManyToOne,@JoinColumn
@Entity
- 클래스는 JPA가 관리
- 속성 - name : 매핑할 테이블 이름 / catalog : DB 카테고리 매핑 / schema : DB 스키마 매핑
- 파라미터가 없는 public 또는 protected 생성자인 기본 생성자 필수
- final 클래스, enum, interface, inner 클래스 사용X
2. 데이터베이스 스키마 자동 생성
- 테이블 중심 -> 객체 중심으로 DDL을 애플리케이션 실행 시점에 자동 생성
→ JPA의 실행 로직에는 영향X
- 생성된 DDL은 개발 장비에서만 사용 ⇒ 운영 장비에는 절대 create, create-drop, update 사용X
- 개발 초기 단계는 create 또는 update
- 테스트 서버는 update 또는 validate
- 스테이징과 운영 서버는 validate 또는 none
- 속성
- create : 삭제 후 다시 생성/ create-drop : 종료시점에 drop
- update : 변경분만 반영(운영DB에는 사용X) / validate : 정상 매핑 확인 / none