dev garden

when technology meets nature

Hibernate nie chce zapisać rekordu w bazie? Problem z BatchUpdateException

| 2 Comments

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.

Author: darek

Programista, z zamiłowania fotograf. Interesuje się różnymi aspektami programowania oraz językiem Java niemal w każdym jego wydaniu. Amator grejpfrutów oraz dobrego humoru. W wolnych chwilach czyta ciekawe książki(grails, gwt, objective-c) nie tylko informatyczne, ale również popularno naukowe oraz s-f

2 Comments

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

  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.

Dodaj komentarz

Required fields are marked *.

*