본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다.
실제 객체와 RDB를 어떻게 매핑해서 쓰는지? JPA를 실무에 적용할 때 가장 중요한 부분 중 하나이다.
엔티티 매핑 소개
- 객체와 테이블 매핑: @Entity, @Table
- 필드와 컬럼 매핑: @Column
- 기본 키 매핑: @Id
- 연관관계 매핑: @ManyToOne, @JoinColumn
@Entity
- @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다.
- JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수
주의
기본 생성자 필수
(파라미터가 없는 public 또는 protected 생성자) => 리플렉션을 사용하여 동적으로 값을 채워넣는 매커니즘이 있으므로- final 클래스, enum, interface, inner 클래스 사용X
- 저장할 필드에 final 사용 X
@Entity 속성 정리
- 속성: name
- JPA에서 사용할 엔티티 이름을 지정한다.
- 기본값: 클래스 이름을 그대로 사용(예: Member)
- 같은 클래스 이름이 없으면 가급적 기본값을 사용한다.
- JPA가 구분하는 이름 정도로만 알아두자.
@Table
- @Table은 엔티티와 매핑할 테이블 지정