JPA 식별자 자동 생성


JPA가 제공하는 데이터베이스 기본 키 생성 전략


1. GenerationType.AUTO

@Id 
@GeneratedValue // @GeneratedValue(strategy=GenerationType.AUTO) 와 동일 
protected Long id;

JPA 공급자에 따라 기본 설정이 다르다.


Spring Boot는 Hibernate의 id 생성 전략을 그대로 따라갈지 말지를 결정하는 useNewIdGeneratorMappings 설정이 있다.

1.5에선 기본값이 false, 2.0부터는 true Hibernate 5.0부터 MySQL의 AUTO는 IDENTITY가 아닌 TABLE을 기본 시퀀스 전략으로 선택된다.

즉, 1.5에선 Hibernate 5를 쓰더라도 AUTO를 따라가지 않기 때문에 IDENTITY가 선택되고 2.0에선 true이므로 Hibernate 5를 그대로 따라가기 때문에 TABLE이 선택되었다. (Hibernate 6.0에서 다시 IDENTITY로 돌아간다고 한다.)