Skip to main content

엔티티 매핑-기본키

·107 words·1 min· loading
Table of Contents

직접할당 :@Id만 사용 자동생성 : @GeneratedValue

@GeneratedValue(strategy= ? )
#

GenerationTpye.Identity: 전략을 DB에 위임
#

  • DB에 들어간 후에, ID값을 알 수 있음 => persist() 후 바로 쿼리 날라감
  • AUTO_INCREMENT 생각

GenerationTpye.Sequence
#

  • DB의 Sequence 사용
  • persist() 후 Sequence값만 가져왔다가, 끝날때 날림
  • allocationSize 등을 통해 성능향상 가능
@Entity
@SequenceGenerator(
name = MEMBER_SEQ_GENERATOR",
sequenceName=“MEMBER_SEQ",//시퀀스이름
initialValue = 1, allocationSize = 50)  //한번에 50개 가져오고,그동안은 메모리에서 가져옴
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "MEMBER_SEQ_GENERATOR")
private Long id;

GenerationType.TABLE
#

  • Sequence 역활을 하는 테이블 사용 정략
  • Sequence 없는 DB도 가능하지만, 성능 이슈

GenerationType.UUID
#

  • 강의에는 없는데 추가된거같음
  • 말그대로 UUID 사용

권장 식별자 전략
#

Long + 대체키 + 생성전략