Podczas pracy z Hibernatem oraz bazą PostgreSQL napotkałem się na dziwny błąd podczas wykonywania zapytania INSERT do bazy danych.
Gdy wysyłałem dane do bazy wyskakiwał poniższy błąd:
org.hibernate.exception.ConstraintViolationException:
Could not execute JDBC batch update
root cause
java.sql.BatchUpdateException:
Zadanie wsadowe 0 insert into public.user
(name, password, email, login, sureName, registerDate, payback, id) values ...
Rozwiązaniem/obejściem problemu jakie znalazłem jest wstawienie w pliku konfiguracyjnym hibernate-a (hibernate.cfg.xml) linijki:
<property name="hibernate.jdbc.batch_size">0</property>
Dzięki temu wszystko zaczęło ładnie działać, minusem jest zmniejszenie wydajności w obsłudze bazy danych, od teraz zapytania do bazy będą wysyłane pojedynczo a nie w grupie.
Jak ktoś zna lepsze rozwiązanie, z chęcią je poznam.
Listopad 27, 2009 at 14:44
Jeżeli pisze o bugu wklej przynajmniej całego stack’a !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Listopad 27, 2009 at 14:50
Wybacz, nie widziałem sensu by to robić, napisałem kiedy oraz jaki wyskakuje błąd a także napisałem jakie jest rozwiązanie, nie uważałem, ze ważne jest by się zagłębiać w sam problem.