@GeneratedValue
애노테이션 개요
- Java EE 표준에 속하는 Java Persistence 에 있는 애노테이션이다.
- 기본키 값에 대한 생성 전략 명세를 위해 제공된다.
- 엔티티 혹은 mapped superclass의 기본 키 프로퍼티 혹은 필드에
@Id
애노테이션과 함께 적용된다.
@GeneratedValue
애노테이션의 사용은 오직 간단한 기본 키에만 필요로 된다.
- 'derived primary key' 를 지원하지 않는다. ex) 주민번호와 같은 인위적인 키
// Example 1:
@Id
@GeneratedValue(strategy=SEQUENCE, generator="CUST_SEQ")
@Column(name="CUST_ID")
public Long getId() { return id; }
// Example 2:
@Id
@GeneratedValue(strategy=TABLE, generator="CUST_GEN")
@Column(name="CUST_ID")
Long id;
Optional Element
String generator
: SequenceGenerator 혹은 TableGenerator 애노테이션에서 사용하기 위한 기본 키 생성기(primary key generator)의 이름
GenerationType strategy
: 애노테이션이 적용된 엔티티 기본키를 생성하기 위해 영속성 제공자(persistence provider)가 반드시 사용해야 하는 기본키 생성 전략
레퍼런스
GeneratedValue 공식 문서