Como criar e ler uma sequência em hibernação?
-
05-07-2019 - |
Pergunta
Eu preciso usar uma seqüência para obter um valor único. Os usa o código de produção postgres, mas eu gostaria de acessá-lo via Hibernate para que eu possa testar isso com HSQLDB.
Como posso criar e ler uma seqüência em hibernação?
Solução
Tenha um olhar em Dialect
( https://github.com/hibernate/hibernate-orm/blob/5.0/hibernate-core/src/main/java/org/hibernate/dialect/Dialect.java ).
Ele contém código para determinar se suas seqüências aceita banco de dados (supportsSequences()
) e métodos para criar e soltá-los ( 'getCreateSequenceString (String da sequcia)').
Infelizmente, não há nenhuma maneira limpa para obter o dialeto da sessão; consulte Como chegar Hibernate dialeto durante a execução
[Resposta OLD]
Você poderia tentar reutilizar o código de HibernateDialect
mas a principal API não oferece isso. Sua melhor aposta é provavelmente para quebrar isso em uma interface e, em seguida, usar diferentes implementações, dependendo do dialeto.