sm 기술 블로그

[스프링부트] ID와 GeneratedValue 본문

스프링부트

[스프링부트] 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)
}
Comments