엔티티 매핑
- JPA를 사용하는데 있어서 가장 중요한 일은 엔티티와 테이블을 정확히 매핑하는 것
- JPA에서 지원하는 4가지 분류의 어노테이션
- 객체와 테이블 매핑: @Entity, @Table
- 기본키 매핑: @Id
- 필드와 컬럼 매핑: @Column
- 연관관계 매핑: @ManyToOne, @JoinColumn
1. @Entity
- 테이블과 매핑할 클래스에 대한 필수 어노테이션
- 기본 생성자가 존재해야함
2. @Table
- 테이블 이름을 지정
3. 다양항 매핑 사용
4. 데이터베이스 스키마 자동 생성
- JPA는 스키마를 자동으로 생성하는 기능을 제공
- hibernate.hbm2ddl.auto, create
5. DDL 생성 기능
6. 기본 키 매핑
IDENTITY
- 키 생성을 데이터베이스에 위임
- AUTO_INCREMENT등을 사용한 경우
- @GeneratedValue(strategy = GenerationType.IDENTITY)
SEQUENCE
- 시퀀스를 지원하는 데이터베이스에서 사용
@Entity
@SequenceGenerator(
name = "BOARD_SEQ_GENERATOR",
sequenceName = "BOARD_SEQ",
initialValue = 1, allocationSize = 1)
public class Board {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE,
generator = "BOARD_SEQ_GENERATOR")
private Long id;
}
TABLE
- 키 생성 전용 테이블을 하나 만들고 여기에 해당 키를 업데이트하며 키를 생성
@Entity
@TableGenerator(
name = "BOARD_SEQ_GENERATOR",
table = "MY_SEQUENCES",
pkColumnValuee = "BOARD_SEQ", allocationSize = 1)
public class Board {
@Id
@GeneratedValue(strategy = GenerationType.TABLE,
generator = "BOARD_SEQ_GENERATOR")
private Long id;
}
AUTO
- IDENTITY, SEQUENCE, TABLE중 하나를 자동으로 선택