Backend/자바 Java

@Id, @GeneratedValue : 데이터베이스 Primary key 자동생성

Study-note 2020. 8. 20. 15:44

데이터베이스 테이블의 기본키Primary key를 선정하는 두 가지 방법

1. 자연키Natural key - 전화번호, 이메일처럼 비즈니스적으로 의미 있는 키.

2. 대체키Surrogate key - 비즈니스와 상관없이 임의로 만들어진 키.

 

JPA(Java Persistence API)는 데이터베이스 테이블 대체키SurrogateKey를 기본 키로 자동 생성하는 기능을 지원

사용 방법: Entity클래스에 @Id, @GeneratedValue 어노테이션 추가

 

@GeneratedValue에 대체키 자동생성 전략 지정(4가지, 지정하지 않으면 AUTO가 디폴트)

- AUTO(default) : JPA구현체가 자동으로 생성 전략을 결정.

- IDENTITY : 기본키 생성을 데이터베이스에 위임. (MySQL: AUTO_INCREMENT를 사용하여 기본키 생성)

- SEQUENCE : 데이터베이스의 특별한 오브젝트 시퀀스를 사용하여 기본키 생성.

- TABLE : 데이터베이스에 키 생성 전용 테이블을 하나 만들고 이를 사용하여 기본키 생성.

 

https://www.popit.kr/%ED%95%98%EC%9D%B4%EB%B2%84%EB%84%A4%EC%9D%B4%ED%8A%B8%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%9E%90%EB%8F%99-%ED%82%A4-%EC%83%9D%EC%84%B1-%EC%A0%84%EB%9E%B5%EC%9D%84-%EA%B2%B0%EC%A0%95%ED%95%98/