Domanda

Devo usare una sequenza per ottenere un valore univoco. Il codice di produzione utilizza postgres ma vorrei accedervi tramite Hibernate in modo da poterlo provare con HSQLDB.

Come posso creare e leggere una sequenza in Hibernate?

È stato utile?

Soluzione

Dai un'occhiata a Dialect ( https://github.com/hibernate/hibernate-orm/blob/5.0/hibernate-core/src/main/java/org/hibernate/dialect/ Dialect.java ).

Contiene codice per determinare se il database supporta le sequenze ( supportsSequences () ) e i metodi per crearle e rilasciarle ('getCreateSequenceString (String sequenceName)').

Sfortunatamente, non esiste un modo pulito per ottenere il dialetto dalla sessione; vedi Come ottenere il dialetto Hibernate durante il runtime

[VECCHIA Risposta]

Potresti provare a riutilizzare il codice da HibernateDialect ma l'API principale non offre questo. La soluzione migliore è probabilmente quella di racchiuderla in un'interfaccia e quindi utilizzare diverse implementazioni a seconda del dialetto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top