기본키를 직접 할당하려면 @Id만 사용하면 되고, 자동 생성 전략을 사용하려면 @Id에 @GeneratedValue를 추가하고 원하는 키 생성 전략을 선택하면 된다.
JPA가 제공하는 데이터베이스 기본키 생성 전략
직접 할당 : 기본키를 애플리케이션에서 직접 할당
자동 생성 : 대리키 사용 방식
IDENTITY : 기본키 생성을 DB에 위임한다. - SEQUENCE : 시퀀스를 사용해서 기본키를 할당한다. - TABLE : 키 생성 테이블을 사용한다.
데이터베이스 벤더마다 지원하는 방식이 다르기 때문에 전략이 다양하다.
오라클은 시퀀스를 제공하지만, MySQL은 시퀀스를 제공하지 않는다.
키 생성 전략을 사용하려면
persistence.xml
에
hibernate.id.new_generator_mappings = true
속성을 반드시 추가해야 한다.