인프런 커뮤니티 질문&답변

gmlwjd4667님의 프로필 이미지
gmlwjd4667

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

기본 키 매핑

SEQUENCE전략 궁금한게 있습니다!

작성

·

178

0

안녕하세요.

궁금한점이 SEQUNCE전략에서

@GeneratedValue(strategy = GenerationType.SEQUENCE)를 써서 

하이버네이트가 제공하는 기본 시퀀스를  쓰고

그리고  테이블마다 시퀀스를 따로 관리하기위해

@SequenceGenerator를 쓰라고 하셨는데

궁금한점이 테이블마다 시퀀스를 따로 둬서 관리하는 이유가 무엇인지 궁금합니다.

항상 감사드립니다.

답변 2

0

아그러면 sequence를 쓰는경우 table이 두개이상인 경우부터는 generatedvalue어노테이션이 필수인거네요?!

0

안녕하세요. gmlwjd4667님, 공식 서포터즈 OMG입니다.

테이블마다 시쿼스를 따로 둬서 관리하지 않을 경우 다음과 같은 상황이 발생하게 됩니다.

예를 들어, ITEM 테이블과 MEMBER 테이블이 있을 때

MEMBER 데이터 하나가 생성되면 해당 데이터의 id는 시퀀스의 1을 부여받습니다.

이후 ITEM 1개가 등록되면 처음 등록한 item이지만 시퀀스가 공유되어 id가 2가 됩니다.

이러한 상황이 발생되면 id의 증가가 예측 불가능하게 증가가 되어 기본 키로 지정한 id가 누락이 된 것 인지 판별이 힘들고, 하나의 시퀀스를 공유하기 때문에 값 크기가 기하급수적으로 커질 수 있습니다.

 

감사합니다.

gmlwjd4667님의 프로필 이미지
gmlwjd4667

작성한 질문수

질문하기