poniedziałek, 27 kwietnia 2009

Hibernate nie chce zapisać rekordu w bazie? Problem zBatchUpdateException

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:
0

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.

2 komentarze:

  1. Jeżeli pisze o bugu wklej przynajmniej całego stack'a !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    OdpowiedzUsuń
  2. 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.

    OdpowiedzUsuń