Wyjątek:
Informuje nas, że wyjątek sesji miał miejsce przed punkt, w którym ten org.hibernate.AssertionFailure
jest rzucony.
Dokładnie mówiąc, org.hibernate.AssertionFailure
jest generowany, gdy session.flush()
się dzieje, a nie w miejscu, w którym wystąpił błąd.
Powyższe jest faktem, stąd możliwy wniosek jest taki:coś może tłumić oryginalny wyjątek.
Więc szukaj innych możliwe punkty błędu:save()
lub saveOrUpdate()
prawdopodobnie próbuje utrwalić encję z null
pole gdzie w tabeli kolumna to NOT NULL
?
WSKAZÓWKA: Aby pomóc w debugowaniu, spróbuj dodać session.flush()
po każdej interakcji z Session
obiekt (np. session.save(obj)
, session.merge(obj)
itp.), miejmy nadzieję, że spowoduje to org.hibernate.AssertionFailure
wydarzy się wcześniej, bliżej miejsca, w którym ma miejsce prawdziwy problem. (Oczywiście po debugowaniu usuń te session.flush()
.)
W moim przypadku prawdziwe wyjątek miał miejsce wewnątrz try/catch {}
blok, w którym catch
pominął wyjątek (nie zgłosił ponownie ani mnie o tym nie ostrzegał).