Ovladač Oracle by měl vrátit správný počet řádků. Nechám se překvapit, jestli tomu tak není. Podařilo se vám potvrdit, že výsledky z ovladače jsou správné? Chcete-li to zkontrolovat, můžete zapnout protokolování Hibernate.
Pár věcí ke kontrole:
-
Zaznamenejte skutečný SQL odesílaný do DB a zkontrolujte, zda je sloupec verze uveden v klauzuli where. Nejste si jisti, zda jsou SQL protokolovány protokolováním Hibernate se zapnutým dávkováním, možná budete muset uchýlit se k jinému způsobu protokolování SQL než (např. p6spy)
-
Pokud se počty řádků během souběžných aktualizací vracejí správně, pak aplikace funguje správně. Potvrďte to kontrolou, zda jsou hodnoty ve sloupci verze aktualizovány a opraveny.
Aktualizovat Podle následujícího odkazu byl tento problém přítomen u ovladače Oracle do verze 11g a opraven ve verzi 12c
https://hibernate.atlassian.net/browse/HHH-3360
Pro předchozí verze Oracle existují některé další informace, které by měly být užitečné, tj. je poskytnuto vlastní řešení.
Další zdroje:https://hibernate.atlassian.net/browse/HHH-5070