스프링부트
[스프링부트] ID와 GeneratedValue
sm_hope
2022. 7. 17. 20:03
@Id
해당 변수가 테이블의 기본키(primary Key) 역할을 한다는 것을 나타낸다.
@GeneratedValue
기본키(primary Key)의 값을 위한 생성 전략을 명시하는데 사용.
(@Id 와 함께 엔티티 또는 매핑된 슈퍼클래스의 기본 키 속성 또는 필드에 적용할 수 있다.)
옵션
- generator : SequenceGenerator, TableGenerator에 지정된 대로 사용할 기본 키 생성기 이름을 지정하는 곳입니다. 기본값은 persistence가 제공하는 ID 생성기
- strategy : 엔티티의 기본키 생성 전략입니다. 기본값은 AUTO 입니다.
GenerationType
TABLE : 데이터 베이스에 키 생성 전용 테이블을 하나 만들고 이를 사용하여 기본키를 생성한다.
SEQUENCE : 데이터베이스의 특별한 오브젝트 시퀀스를 사용하여 기본키를 생성한다.
IDNETITY : 기본키 생성을 데이터베이스에 위임한다. 예를들어 MySQL의 경우 AUTO_INCREMENT를 사용하여 기본키 생성
AUTO : JPA 구현체가 자동으로 생성 전략을 결정
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
}