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

Hibernate salva i dati non aggiornati con hibernate.jdbc.batch_versioned_data

Il driver Oracle dovrebbe restituire il conteggio delle righe corretto. Sarei sorpreso se non fosse così. Sei riuscito a confermare che i risultati del driver sono corretti? Puoi attivare la registrazione in sospensione per verificarlo.

Un paio di cose da controllare:

  1. Registrare l'SQL effettivo inviato al DB e verificare che la colonna della versione sia menzionata nella clausola where. Non sono sicuro che gli SQL siano registrati da Hibernate con la registrazione in batch, potresti dover ricorrere a un modo diverso di registrare gli SQL (ad esempio, p6spy)

  2. Se i conteggi delle righe vengono restituiti correttamente durante gli aggiornamenti simultanei, l'applicazione funziona correttamente. Confermalo controllando che i valori della colonna versione siano aggiornati corretti.

Aggiorna Secondo il seguente link, questo problema era presente con il driver Oracle fino all'11g e risolto nella versione 12c

https://hibernate.atlassian.net/browse/HHH-3360

Per le versioni precedenti di Oracle sono disponibili alcune informazioni aggiuntive che dovrebbero essere utili, ad esempio viene fornita una soluzione personalizzata.

Risorse aggiuntive:https://hibernate.atlassian.net/browse/HHH-5070