twocowsong

AUTO 전략 본문

IT/JPA

AUTO 전략

WsCode 2022. 5. 16. 21:00

깃허브 정리 URL : https://github.com/sWineTake/jpa.git

 

GitHub - sWineTake/jpa: 자바 ORM 표준 JPA 프로그래밍 - 김영한

자바 ORM 표준 JPA 프로그래밍 - 김영한. Contribute to sWineTake/jpa development by creating an account on GitHub.

github.com

DB 종류도 많고 기본키를 만드는 방법도 다양합니다.

GenerationType.AUTO는 선택한 DB방언에 따라 IDENTITY, SEQUENCE, TABLE 전략 중 하나를 자동으로 선택합니다.

예를 들어 MySQL을 선택하면 IDENTITY를 사용합니다.

 

@Entity
public class BoardAuto {
   
   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)
   private Long id;
   
}

@GeneratedValue.strategy의 기본값은 AUTO 입니다. 

따라서 아래와같이 사용해도 결과는 같습니다.

@Id
@GeneratedValue
private Long id;

AUTO 전략의 장점은 DB를 변경해도 코드를 수정할 필요가 없다는 장점이있습니다.

특히 키 생성 전략이 확정되지 않은 개발 초기 단계나 프로토타입 개발시 편리하게 사용할 수 있습니다.

 

AUTO사용 시 SEQUENCE나 TABLE 전략이 선택되면 시퀀스나 키 생성용 테이블을 미리 만들어 두어야 합니다.

(@TableGenerator 나 @SequenceGenerator 전략으로 생성시키지 않기때문입니다.)

 

만약 스키마 자동 생성 기능을 사용한다면 하이버 네이트가 기본값을 사용해서 적절한 시퀀스나 키 생성용 테이블을 만들어 줄 것입니다.

'IT > JPA' 카테고리의 다른 글

필드와 컬럼 매핑 : @Column  (0) 2022.05.18
기본 키 매핑 정리  (0) 2022.05.16
TABLE 전략  (0) 2022.05.15
SEQUENCE 전략  (0) 2022.05.14
IDENTITY 전략  (0) 2022.05.13