엔티티 매핑
JPA를 사용함에 있어 가장 중요한 것은 엔티티와 테이블을 매핑하는 것이다. JPA는 다양한 매핑 어노테이션을 지원하고 크게 4가지로 분류할 수 있다.
- 객체와 테이블 매핑: @Entity, @Table
- 기본 키 매핑: @Id
- 필드와 컬럼 매핑: @Column
- 연관관계 매핑: @ManyToOne, @JoinColumn, @OneToMany, @ManyToMany
@Entity
JPA를 사용할 때 테이블과 매핑되는 엔티티 클래스에 필수로 붙여야 하는 어노테이션이다. 그리고 엔티티 클래스의 경우 몇 가지 주의사항이 있다.
- 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자)
- final 클래스, enum, interface, inner 클래스에는 사용 불가
- 저장할 필드에 final 사용 불가
@Table
@Table
어노테이션은 엔티티와 매핑할 테이블을 지정할 때 사용한다. 생략하게 되면 엔티티 이름을 테이블 명으로 사용한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
@Entity
@Table(name = "tb_member") // 생략 시 테이블은 엔티티 명칭인 member로 매핑된다.
public class Member {
@Id // 기본 키 매핑
@Column(name = "member_id") // 컬럼 매핑
private Long id;
@Column(name = "member_nm")
private String memberNm;
private Integer age; // @Column 생략 시 필드 명칭인 age로 매핑된다.
}
Comments powered by Disqus.