SEQUENCE?
- DB 시퀀스는 유일한 값을 순서대로 생성하는 DB 오브젝트
- 오라클 PostgreSQL 등 데이터베이스에서 사용 가능
시퀀스 사용방법
- JPA 에서는
@SequenceGenerator
으로 시퀀스 매핑가능
@Entity
@SequenceGenerator (
name = "BOARD_SEQ_GENERATOR",
sequenceName = "BOARD_SEQ",
initialValue = 1, allocationSize = 1
)
public class Board {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "BOARD_SEQ_GENERATOR")
private Long id;
}
- 주의
@SequenceGenerator.allocationSize
의 기본값은 50
- 해당 값이 기본 값으로 설정되는 경우 시퀀스 값이 한 번 호출 시 마다 50 증가함
- 기본값을 사용하려면 증가 값을 반드시 1로 설정
질문
- SEQUENCE 와 IDENTITY 의 차이점❗❗
- 시퀀스
- 식별자를 조회하기 위해 먼저 DB 시퀀스 호출
- 시퀀스 값을 엔티티에 할당
- 엔티티 저장
- IDENTITY
- 엔티티를 DB에 저장
- 그 후 식별자 조회
- 엔티티 할당
- 시퀀스
- @SequenceGenerator 속성
name
- 생성기 이름
sequenceName
- 실제 DB의 시퀀스 이름
initialValue
- 시퀀스의 시작값
- DDL 생성시에만 사용
allocateSize
- 시퀀스 호출 시 증가하는 값
- 주로 성능의 최적화시 사용함
Uploaded by N2T
'자바 > JPA' 카테고리의 다른 글
[4단원] 기본 키 매핑 (0) | 2023.11.01 |
---|---|
[4단원] 기본 키 직접 할당 전략, IDENTITY 전략 (0) | 2023.11.01 |
[4단원] 기본키 - TABLE , AUTOINCREMENT 전략 (0) | 2023.11.01 |
[4단원] JPA 필드와 컬럼 매핑 (0) | 2023.11.01 |
[5단원] 단방향 연관관계 (0) | 2023.11.01 |