Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Hibernate-Sequenz nextVal aufgelöst, aber nicht verwendet (Oracle)

Wie ich in meinem 3. Update erwähnt habe, „holte JPA 50 IDs“ aus der Sequenz im Voraus und zählte sie aus Effizienzgründen im Speicher durch.

Dieses Verhalten wird durch javax.persistence.SequenceGenerator.allocationSize angegeben was standardmäßig 50 ist.

Das ist überhaupt nicht intuitiv für mich, oder andere , da meine Oracle-Datenbanksequenz dieses Verhalten definieren soll und 50 dort keine Standardvorgabe ist.

Die schnelle und schmutzige Lösung bestand darin, allocationSize=1 anzugeben :

@SequenceGenerator(name = "generator", sequenceName = "MY_SEQ",
                   allocationSize = 1)

Jetzt wird die Oracle-Sequenz für jede Einfügung inkrementiert.