Undantaget:
Berättar för oss att sessionundantaget har inträffat före punkten där denna org.hibernate.AssertionFailure
kastas.
För att vara exakt, org.hibernate.AssertionFailure
kastas när session.flush()
händer, inte den punkt där felet uppstod.
Ovanstående är ett faktum, så en möjlig slutsats från det är:något kan vara undertryckande det ursprungliga undantaget.
Så leta efter annat möjliga felpunkter:En save()
eller saveOrUpdate()
möjligen försöker bevara en enhet med en null
fält där kolumnen i tabellen är NOT NULL
?
TIPS: För att hjälpa till med felsökningen, försök att lägga till en session.flush()
efter varje interaktion med Session
objekt (t.ex. session.save(obj)
, session.merge(obj)
, etc.), kommer detta förhoppningsvis att orsaka org.hibernate.AssertionFailure
att hända tidigare, närmare där det verkliga problemet äger rum. (Naturligtvis, efter felsökningen, ta bort dessa session.flush()
.)
I mitt fall, den riktiga undantaget ägde rum i en try/catch {}
block där catch
undertryckte undantaget (kastade inte om eller varnade mig för det).