-
@Id
-
@GeneratedValue
- strategy = GenerationType.IDENTITY
- 데이터베이스에 위임
- MYSQL(AUTO_INCREMENT)
- AUTO_INCREMENT는 데이터베이스 insert 문을 실행한 이후에 ID 값을 알 수 있다.
- IDENTITY 전략은 em.persist 시점에 즉시 insert문을 실행하고 DB에서 식별자를 조회한다.
-
strategy = GenerationType.SEQUENCE
- 데이터베이스 시퀀스 오브젝트 사용
- ORABLE
- @SequenceGenerator 필요
- 속성
- name
- sequenceName
- initialValue
- DDL 생성 시에만 사용됨, 시퀀스 DDL을 생성할 때 처음 시작하는 수를 지정한다.
- allocationSize
- 시퀀스 한 번 호출에 증가하는 수
- 데이터베이스 시퀀스 값이 하나씩 증가하도록 설정되어 있으면 이 값을 반드시 1로 설정해야 한다.
- catalog, schema
-
strategy = GenerationType.TABLE
- 키 생성용 테이블 사용
- 모든 DB
- @TableGenerator 필요
- 속성
- name
- table
- pkColumnName
- valueColumnName
- pkColumnValue
- initialvalue
- allocationSize
- catalog, schema
- uniqueContrants(DDL)
-
strategy = GenerationType.AUTO
참고
-
https://liltdevs.tistory.com/149