2011-02-14 3 views
0

HSQLDB 데이터베이스에서 Hibernate/JPA 어노테이션을 사용하여 IDENTITY 컬럼의 초기 값을 지정할 수 있습니까? 관련 소스 코드는 지금까지 다음과 같습니다어노테이션을 통해 HSQLDB ID의 초기 값을 지정하십시오.

@Id 
@GeneratedValue(strategy=GenerationType.AUTO) 
public Long getId() { 
    return id; 
} 

을 생성 DDL은 다음과 같습니다 : 내가하고 싶은 무엇

id bigint generated by default as identity (start with 1) 

이 ID는 주석을 통해 10,000의 값으로 시작하게하다 .

참고 : 이것은 새로운 응용 프로그램이므로 Hibernate와 HSQLDB의 최신 버전을 사용하고 있습니다.

답변

0

이 질문은 처음에 Hibernate로 태그 지정되지 않았기 때문에, 아마도 Hibernate 전문가가 놓친 것입니다. 방금 Hibernate HSQLDialect가 모든 ID 생성을 위해 (1로 시작하는) 리턴한다는 것을 알았다. 그러므로 아마도 이것을 덮어 쓸 방법이 없을 것입니다.

테이블을 만든 후 데이터를 추가하기 전에 SQL 문을 실행하여 ID를 다시 설정하는 방법을 알아야합니다. SQL은 다음과 같습니다.

ALTER TABLE hibernate_generated_table_name ALTER COLUMN id RESTART WITH 10000 
+0

감사합니다. 프로덕션 코드를 설치하면 손으로 작성된 DDL 스크립트가 실행되므로 그 시간에 "(start with)"절을 사용자 정의 할 수 있습니다. 개발 단계에서 "hibernate.hbm2ddl.auto"를 사용하여 ID의 시작 값을 사용자 정의하는 것이 좋을 스키마를 자동으로 작성/업데이트합니다. – JoeB

관련 문제