개발자
자바, 스프링부트 프로젝트에서 하이버네이트를 사용해서 작업하고 있습니다. 오라클 시퀀스를 테이블명_SEQ로 생성해놓고 엔티티 ID컬럼에 어노테이션을 붙였는데요 처음 두번까지는 1, 2로 ID 생성이 되다가 그 다음부터는 50단위로 생성이 됩니다. 52, 102, 152... 이런 식이에요. 이해가 깊지 않아 많은 가르침 부탁드립니다.
답변 1
하이버네이트를 사용하고 있을 때, 시퀀스 생성 전략을 이용해서 ID 값을 생성하는 경우, 일부 상황에서 특정 값으로 ID 값이 생성될 수 있는 문제가 발생합니다. 이러한 현상을 피하기 위해 하이버네이트에서는 시퀀스 증분 크기를 설정할 수 있도록 기능을 제공하고 있습니다. 증분 크기(increment size)는 시퀀스가 생성하는 값의 증가량을 설정하는 것입니다. 따라서 설정한 증분 크기만큼 시퀀스에서 생성된 값을 건너뛰고 다음 값부터 사용하게 됩니다. 예를 들어, increment size가 50으로 설정되어 있다면, 처음 두 번의 ID 생성은 1, 2가 되고, 그 다음부터는 50씩 증가하면서 52, 102, 152... 등으로 생성됩니다. 위의 코드와 DDL에서는 increment size를 1로 설정하고 있기 때문에 이런 문제가 발생하면 이상합니다. 따라서 설정한 증분 크기가 50으로 되어 있기 때문에 이 문제가 발생하고 있는 것으로 추측됩니다. increment size를 1로 수정해보시기 바랍니다. 만약 수정해도 문제가 해결되지 않는다면, 다른 원인이 있을 수 있습니다. 이 경우에는 데이터베이스 로그 등을 확인해서 원인을 찾아내야 합니다.
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!