4장 엔티티 매핑
엔티티 매핑
@Entity : DB 테이블과 객체를매핑하는 어노테이션, JPA가 관리하는 독립체 라는 뜻이다.
@Table : @Entity 와매핑할 테이블을 지정한다. 생략하면 매핑한 엔티티 이름을 테이블 이름으로 사용한다.
@Column : 해당 컬럼의 옵션 조정
위 어노테이션 모두 DDL을 통한 자동 생성시 에만 적용된다.
스키마 자동생성
@Entity, @Table 사용하면 애플리케이션 실행 시 자동으로 테이블이 만들어진다.
다만 이렇게 만들어진 테이블은 개발 단계에서만 사용하고 실 운영 서버에서는 다듬은 후 사용하거나 사용하지 않는다.
기본 키 생성 전략
직접 할당 : 애플리케이션에서 기본 키를 직접 할당
자동 생성
IDENTITY
INSERT 쿼리를 날리고 난 후에 ID 값을 세팅한다. INSERT 쿼리를 날리기 전에는 식별자 값이 없으므로 쓰기지연 동작 X
기본 키 생성을 데이터베이스에 위임하는 전략이다
SEQUENCE
DB Sequence 라는 유일한 값을 순서대로 생성하는 디비 오브젝트이다. @SequenceGenerator 를 통해 속성을 추가해서 사용 가능하다. (AllocationSize : Jpa 에서 가상으로 관리할 시퀀스 할당 범위, 기본값 : 50)
AllocationSize 만큼 한번 돌고 다시 시작값을 정할때 공식 (MAX)값 - (allocationSize - 1)
TABLE
운영서버 사용하기에 적합하지않음
AUTO
DB 벤더 마다 표준 방식이 다르다. MYSQL 은 AUTO_INCREMENT, 오라클은 SEQUENCE 를 제공한다.
Last updated