[JPA] 오라클의 경우 시퀀스 값이 공유되는 문제 (@GeneratedValue 설정시)

2023. 10. 27. 20:40
728x90

1. 엔티티 애너테이션 후 PRIMARY KEY값에 고유의 시퀀스를 자동적으로 설정해주고 싶다. 이때 ?

 

=> @Id,  @GeneratedValue(strategy = GenerationType.SEQUENCE)로 설정을 해주면 된다~~!

이렇게 설정을 해주었다. 

결과는?

 

 

뭔가 ID값이 고유하게 설정이 되었는데 이상한 점은 자꾸 MAJOR2 테이블과 STUDENT2 테이블의 시퀀스 값이 공유되어서 

시퀀스 값이 띄어진다... 오잉...

 

알고보니 시퀀스를 따로따로 만들어줄 설정이 필요하다. 

 

이때 SEQUENCE GENERATOR를 만들어주어야 한다. > 이 시퀀스 제너레이터가 시퀀스를 만들어주고..

내가 이 시퀀스 만들었으니까 이걸로 사용해라~ 라고 언급해주면 된다.

 

 

1) @SequenceGenerator(

                       name = "시퀀스 제너레이터 이름 설정",

                       sequenceName= "시퀀스 이름 설정",

                       initialValue= 시작값,

                       allocationSize= 메모리를 통해 할당할 범위 사이즈) 로 어떤 시퀀스를 생성할지 설정 후

2) @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "시퀀스 제너레이터 이름")

로 제너레이터 이거야~ 그 설정 그대로 시퀀스 만들어서 밸류값으로 달아줘~~라고 요청하면 된다.

간단하지만 당황당황한 오류(?) 아닌 오류~

728x90

BELATED ARTICLES

more