2010-05-10 2 views
6

GenerationType.TABLE을 사용하여 기본 키를 생성하는 이벤트 하위 클래스가있는 문제가 발생합니다. 서버를 다시 시작하면 중복되는 기본 키 오류가 발생합니다.GenerationType.TABLE을 사용하여 다시 시작할 때 중복 키를 최대 절전 모드로 전환

우리는 SQL Server와 최대 절전 모드 버전 3.5.1을 사용 중입니다.

@Entity 
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) 
public abstract class Event { 

    @Id 
    @GeneratedValue(strategy = GenerationType.TABLE) 
    private long eventID; 

우리는 우리가 기본값을 사용하고있는 allocationSize을 지정하지 :

는 여기에 우리의 최대 절전 모드 주석 모양을합니다. 최대 절전 시퀀스 테이블은 증가하지만 재시작시 이미 사용 된 ID를 다시 사용하는 것처럼 보입니다.

답변

0

GenerationType.AUTO 또는 SEQUENCE를 시도해보십시오. AUTO는 최대 절전 모드 매직을 통해 작동하지만 SEQUENCE는 데이터베이스에서 순차적으로 고유 ID를 가져 오는 시퀀스를 만들어야합니다. 어떤 SQL Server를 사용하고 있습니까?

+0

InheritanceType.TABLE_PER_SUBCLASS와 함께 GenerationType.AUTO를 사용할 수 없습니다. Google은 " 매핑에 ID 열 키 생성을 사용할 수 없습니다" – ndtreviv

관련 문제