Open jowoohyeong opened 1 year ago
오라클, PostgreSQL, DB2, H2 데이터베이스에서 사용
@Entity
@SequenceGenerator(name = “MEMBER_SEQ_GENERATOR", sequenceName = “MEMBER_SEQ", //매핑할 데이터베이스 시퀀스 이름
initialValue = 1,
allocationSize = 1)
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MEMBER_SEQ_GENERATOR")
private Long id;
}
allocationSize의 기본 값은 50이다. 그런데 만약 실제 데이터베이스의 시퀀스 증가 값은 1일 때 어떤 일이 벌어질까? 위의 작동 방법대로라면, 3번 동작 즉, 2번째 시작 값을 계산할 때 시작 값이 음수가 된다. 그리고 시작 값부터 시퀀스가 계속 할당되고 끝 값으로 가게 되면 언젠 가는 이미 존재하는 시퀀스를 참조하게 되어 에러가 발생하게 된다.
@Id
@GeneratedValue =====
1. IDENTITY 전략