Spring Data JPA - 기본키 전략(매핑)

doldol_kim·2020년 5월 3일
0

SpringBoot

목록 보기
2/2

Spring Data JPA에서는 엔티티의 기본키를 @Id 를 사용해서 매핑한다.
기본키를 자동생성하는 방법에는 @GeneratedValue에 붙이는 다음과 같이 4개가 있다.

  • IDENTITY : 기본 키 생성을 DB에 위임한다. DB의 auto_increment와 같은 기능을 사용할 때 쓴다.
  • SEQUENCE : 시퀀스를 사용해서 기본키를 생성하는 전략.
  @Entity
  @SequenceGenerator(name = "MY_SEQ_GENERATOR", sequnceName = "MY_SEQ"
                    initialValue = 1, allocationSize = 1)
  public class Board {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MY_SEQ_GENERATOR")
    private Long id;
  }
  • TABLE : 키 생성 전용 테이블을 만들고 DB의 시퀀스 처럼 동작하게 하는 전략
 @Entity
  @TableGenerator(name = "MY_SEQ_GENERATOR", table = "MY_SEQUNCES"
                     pkColumnValue = "MY_SEQ", allocationSize = 1)
  public class Board {
    @Id
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "MY_SEQ_GENERATOR")
    private Long id;
  }


출처: https://feco.tistory.com/96 [wmJun]
package com.springboot.restfulboard.domain.posts;


import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import javax.persistence.*;

@NoArgsConstructor
@Getter
@Entity
public class Posts {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    }
}


profile
김돌돌입니다

0개의 댓글