Driver Oracle harus mengembalikan jumlah baris yang benar. Saya akan terkejut jika ini tidak terjadi. Apakah Anda dapat mengonfirmasi bahwa hasil dari driver sudah benar? Anda dapat mengaktifkan Hibernate logging untuk memeriksanya.
Beberapa hal yang perlu diperiksa:
-
Catat SQL aktual yang dikirim ke DB dan periksa untuk melihat bahwa kolom versi disebutkan dalam klausa where. Tidak yakin apakah SQL dicatat oleh Hibernate logging dengan batching on, Anda mungkin harus menggunakan cara lain untuk mencatat SQL (mis., p6spy)
-
Jika jumlah baris dikembalikan dengan benar selama pembaruan bersamaan, maka aplikasi berfungsi dengan baik. Konfirmasikan hal ini dengan memeriksa apakah nilai kolom versi yang diperbarui telah diperbaiki.
Perbarui Menurut tautan berikut, masalah ini telah ada dengan driver Oracle hingga 11g dan diperbaiki di versi 12c
https://hibernate.atlassian.net/browse/HHH-3360
Untuk versi Oracle sebelumnya ada beberapa informasi tambahan yang seharusnya berguna, yaitu, solusi khusus disediakan.
Referensi tambahan:https://hibernate.atlassian.net/browse/HHH-5070