Spring Boot JPA - GeneratedValue

정신차룟·2021년 2월 8일

JPA 식별 자동 생성

@Entity

 - JPA를 사용해서 데이터베이스의 테이블과 매핑할 클래스에 필수로 명시하는 어노테이션

@GeneratedValue

 - 식별자 자동생성은 @GeneratedValue 어노테이션으로 지정한다.
 - @GeneratedValue의 strategy 속성에 값을 지정해 여러 가지 식별자 
 자동 생성 전략을 선택할 수 있는데 Auto, Table, Sequence, Identity 값으로 지정한다. 


● IDENTITY : 기본 키 생성 데이터베이스에 위임하는 방법(데이터베이스에 의존)
	- 주로 MYSQL, PostgresSQL, MariaDB에서 사용
● SEQUENCE : 데이터베이스 시퀀스를 사용해서 기본 키를 할당 하는 방법 (데이터베이스에 의존)
    - 주로 시퀀스를 지원하는 Oracle, PostgresSql, H2에서 사용
    - @SequenceGenerator를 사용하여 시퀀스 생성기를 등록하고 실제데이터베이스의 생성될 시퀀스이름을 지정해줘야함
● TABLE : 키 생성 테이블을 사용하는 방법
    - 키 생성 전용 테이블을 하나 만들고 여기에 이름과 사용할 컬럼을 만드는 방법입니다.
    - 테이블을 사용하므로, 데이터베이스 벤더에 상관없이 모든 데이터베이스에 적용이 가능
    
● AUTO : 데이터베이스 벤더에 의존하지 않고, 데이터베이스는 기본키를 할당하는 방법
    - 데이터베이스에 따라서 IDENTITY, SEQUENCE, TABLE 방법 중 하나를 자동으로 선택해 주는방법
    - 텍스트예를들어, Oracle일 경우 SEQUENCE 를 자동으로 선택해서 사용합니다. 
      따라서, 데이터베이스를 변경해도 코드를 수정할 필요가 없음

기본키 자동생성법

● ID 어노테이션을사용한다.
● GeneratedValue를 사용한다.
● GeneratedValue에 원하는 키를 선택한다 (IDENTITY, TABLE, AUTO, SEQUENCE)

profile
Young Min

0개의 댓글