Oracle
 sql >> Database >  >> RDS >> Oracle

Sequenza di ibernazione nextVal risolta ma non utilizzata (Oracle)

Come ho detto nel mio terzo aggiornamento, JPA stava "recuperando 50 ID" dalla sequenza in anticipo e contando in memoria per efficienza.

Questo comportamento è specificato da javax.persistence.SequenceGenerator.allocationSize che per impostazione predefinita è 50.

Questo non è affatto intuitivo per me, o altri , poiché la mia sequenza di database Oracle dovrebbe definire questo comportamento e 50 non è un valore predefinito standard lì.

La soluzione rapida e sporca era specificare allocationSize=1 :

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

Ora la sequenza Oracle viene incrementata per ogni inserto.