[JPA] 기본 키 매핑

SJ·2022년 12월 14일

JPA

목록 보기
5/12

기본 키 매핑 어노테이션

  • @Id
  • @GeneratedValue

기본 키 매핑 방법

  • 직접 할당: @Id
  • 자동 생성: @GeneratedValue
    • IDENTITY: 데이터베이스에 위임,MYSQL(Auto Increment)
    • SEQUENCE: 데이터베이스 시퀀스 오브젝트 사용, ORACLE

IDENTITY 전략 - 특징

  • 기본 키 생성을 데이터베이스에 위임한다.
  • 주로 MySQL,PostgreSQL,SQL Server,DB2에서 사용(MySQL의 경우 AUTO_INCREMENT)
  • JPA는 트랜잭션 커밋 시점에 INSERT SQL 실행
  • AUTO_INCREMENT는 데이버베이스에 INSERT SQL을 실행한 이후에 ID값을 알 수 있다.
  • IDENTITY 전략은 em.persist() 즉시 INSERT SQL 실행하고 DB에서 식별자를 조회(SEQUENCE 전략은 INSERT SQL 실행 전에도 ID값 조회 가능)

권장하는 식별자 전략

  • 기본 키 제약 조건: null 아님, 유일, 변하면 안됨.

  • 대리 키 이용하기

  • 권장 : Long타입 + 대체키 + 키 생성전략 사용

profile
slowly But Surely

0개의 댓글