2009-10-22 4 views
1

고유 한 값을 얻기 위해 시퀀스를 사용해야합니다. 프로덕션 코드는 포스트그레스를 사용하지만 Hibernate를 통해 액세스하고 싶습니다. 그래서 HSQLDB로 이것을 테스트 할 수 있습니다.Hibernate에서 시퀀스를 생성하고 읽는 방법?

Hibernate에서 어떻게 시퀀스를 생성하고 읽을 수 있습니까?

+0

hibernate가 * hibernate.hbm2ddl.auto 등을 통해 자동으로 생성하는 * 시퀀스를 지원하지 않는 것 같아서 원시 SQL 쿼리를 통해이를 수행하는 유일한 방법 인 것처럼 보이며 이식성이 없으며 ' 자동 생성 : | – rogerdpack

답변

2

Dialect (https://github.com/hibernate/hibernate-orm/blob/5.0/hibernate-core/src/main/java/org/hibernate/dialect/Dialect.java)을 살펴보십시오.

데이터베이스가 시퀀스 (supportsSequences())와이를 생성하고 삭제하는 메소드 ('getCreateSequenceString (String sequenceName)')를 지원하는지 여부를 결정하는 코드가 들어 있습니다.

불행히도 세션에서 방언을 얻을 수있는 확실한 방법은 없습니다. 참조 How to get Hibernate dialect during runtime

[OLD 대답]

당신은 HibernateDialect의 코드를 다시 시도 할 수 있지만 주요 API는이를 제공하지 않습니다. 최선의 방법은 아마도 이것을 인터페이스로 감싸고 방언에 따라 다른 구현을 사용하는 것입니다.

+0

여기서 HibernateDialect의 코드를 사용하여 정교하게 만들 수 있습니까? – rogerdpack

+0

@rogerdpack : 핑을 보내 주셔서 감사합니다. 답변을 업데이트했습니다. –

관련 문제