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

Hibernate gemmer forældede data med hibernate.jdbc.batch_versioned_data

Oracle-driveren bør returnere korrekte rækketal. Jeg vil blive overrasket, hvis dette ikke er tilfældet. Var du i stand til at bekræfte, at resultaterne fra driveren er korrekte? Du kan aktivere Hibernate-logning for at kontrollere dette.

Et par ting at tjekke:

  1. Log den faktiske SQL, der sendes til DB'en, og kontroller, at versionskolonnen er nævnt i where-klausulen. Ikke sikker på, om SQL'erne er logget af Hibernate-logning med batching på, du skal muligvis ty til en anden måde at logge SQL'erne på (f.eks. p6spy)

  2. Hvis rækkeantallet returneres korrekt under samtidige opdateringer, fungerer applikationen fint. Bekræft dette ved at kontrollere, at værdierne i versionskolonnen er opdateret rettet.

Opdater Ifølge det følgende link har dette problem været til stede med Oracle-driveren indtil 11g og rettet i version 12c

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

For tidligere Oracle-versioner er der nogle yderligere oplysninger, som burde være nyttige, dvs. en brugerdefineret løsning leveres.

Yderligere ressourcer:https://hibernate.atlassian.net/browse/HHH-5070




  1. Bestil efter inden for gruppe efter i doktrin 2

  2. Er det sikkert at sætte et indeks på en midlertidig Oracle-tabel?

  3. SQL Server tabel oprettelsesdato forespørgsel

  4. Sådan rapporteres en fejl fra en SQL Server brugerdefineret funktion