Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Hibernate zapisuje nieaktualne dane dzięki hibernate.jdbc.batch_versioned_data

Sterownik Oracle powinien zwracać prawidłową liczbę wierszy. Zdziwię się, jeśli tak nie jest. Czy udało Ci się potwierdzić, że wyniki ze sterownika są prawidłowe? Aby to sprawdzić, możesz włączyć rejestrowanie hibernacji.

Kilka rzeczy do sprawdzenia:

  1. Zarejestruj rzeczywisty kod SQL wysyłany do bazy danych i sprawdź, czy kolumna wersji jest wymieniona w klauzuli where. Nie masz pewności, czy SQL są rejestrowane przez Hibernate rejestrowanie z włączonym przetwarzaniem wsadowym, być może będziesz musiał uciec się do innego sposobu rejestrowania SQL (np. p6spy)

  2. Jeśli liczniki wierszy są zwracane poprawnie podczas współbieżnych aktualizacji, oznacza to, że aplikacja działa poprawnie. Potwierdź to, sprawdzając, czy wartości w kolumnie wersji zostały zaktualizowane.

Aktualizacja Zgodnie z poniższym linkiem ten problem występował w sterowniku Oracle do 11g i został naprawiony w wersji 12c

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

W przypadku wcześniejszych wersji Oracle istnieją dodatkowe informacje, które powinny być przydatne, np. dostarczane jest niestandardowe rozwiązanie.

Dodatkowe zasoby:https://hibernate.atlassian.net/browse/HHH-5070




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zwracanie wyniku nawet dla elementów z listy IN, które nie istnieją w tabeli

  2. Oracle:Concat z ogranicznikiem, ale tylko wtedy, gdy oba operandy NIE są NULL

  3. java.sql.SQLException:ORA-01002:pobieranie poza kolejnością

  4. Jak wywołać procedurę zwrotu Oracle CURSOR w java?

  5. gdzie mam umieścić zasoby instalatora (plik wxs, skrypt dmg, ikona) i jak skonfigurować maven antrun podczas wdrażania samodzielnej aplikacji