package com.example.youngJPA.member.entity;
import jakarta.persistence.*;
import lombok.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Entity
@Getter
@Setter
@Builder
@Table(name = "MEMBER")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@SequenceGenerator(
name = "MEMBER_ID_GEN",
sequenceName = "MEMBER_ID",
initialValue = 1000000,
allocationSize = 1
)
public class Member {
// JPA 테이블 컬럼 생성
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "MEMBER_ID_GEN")
@Column(name = "MEMBER_ID", length = 20, unique = true)
private Long memberId;
@Column(name = "ID",length = 200,nullable = false)
private String id;
@Column(name = "PW",length = 200,nullable = false)
private String pw;
@Column(name = "ABOUT_ME",length = 3000,updatable = false)
private String aboutMe;
@Column(name = "MEMBER_DT",updatable = false,nullable = false)
private LocalDate memberDt;
@Column(name = "MEMBER_AUTH",updatable = false)
@Enumerated(EnumType.STRING)
private Auth memberAuth;
}
해당 예제에서는 memberId필드의 @GeneratedValue에 GenerationType을 SEQUENCE로 설정하였고 generator속성으로 사용할 시퀀스의 이름을 기입해주어야 한다.
시퀀스를 사용하기 위해서는 클래스 위해 스퀀스에 대한 설정을 해주기 위해 @SequenceGenerator를 선언하고 세부 속성으로 name은 MEMBER_ID_GEN , sequenceName은 데이터베이스에 저장될 시퀀스 개체의 이름을 MEMBER_ID로 설정해주었다. initialValue 는 시작값이 1,000,000 부터 시작되도록 하였으며 allocationSize은 증가값이 1씩 증가하도록 설정하였다.
2024-03-18T17:08:40.834+09:00 DEBUG 26592 --- [ restartedMain] org.hibernate.SQL :
create sequence member_id start with 1000000 increment by 1
Hibernate:
create sequence member_id start with 1000000 increment by 1
2024-03-18T17:08:41.157+09:00 DEBUG 26592 --- [ restartedMain] org.hibernate.SQL :
create table member (
member_dt date not null,
member_id number(19,0) not null,
id varchar2(200 char) not null,
pw varchar2(200 char) not null,
about_me varchar2(3000 char),
member_auth varchar2(255 char) check (member_auth in ('MASTER','USER')),
primary key (member_id)
)
실제로 로그를 살펴보면 create sequence member_id start with 1000000 increment by 1와 같이 member_id 라는 이름으로 시퀀스가 생성되는 것을 확인할 수 있다.

RDBMS에서 증가되는 값을 확인해보면 1식 잘 증가되는것을 확인해볼 수 있다.