Mysql
 sql >> Datenbank >  >> RDS >> Mysql

org.hibernate.AssertionFailure:Null-ID im Eintrag (die Sitzung nicht leeren, nachdem eine Ausnahme auftritt)

Die Ausnahme:

Sagt uns, dass die Sitzungsausnahme vorher aufgetreten ist der Punkt, an dem dieser org.hibernate.AssertionFailure wird geworfen.

Genauer gesagt, der org.hibernate.AssertionFailure wird ausgelöst, wenn session.flush() passiert, nicht der Punkt, an dem der Fehler aufgetreten ist.

Das Obige ist eine Tatsache, also eine mögliche Schlussfolgerung daraus:Etwas könnte unterdrückend sein die ursprüngliche Ausnahme.

Suchen Sie also nach Andere mögliche Fehlerquellen:Ein save() oder saveOrUpdate() möglicherweise versucht, eine Entität mit einem null zu persistieren Feld wobei in der Tabelle die Spalte NOT NULL ist ?

TIPP: Um beim Debuggen zu helfen, versuchen Sie, eine session.flush() hinzuzufügen nach jeder Interaktion mit der Session Objekt (z. B. session.save(obj) , session.merge(obj) usw.), wird dies hoffentlich den org.hibernate.AssertionFailure verursachen früher geschehen, näher an dem Ort, an dem das eigentliche Problem auftritt. (Entfernen Sie nach dem Debuggen natürlich diese session.flush() .)


In meinem Fall das Echte Ausnahme innerhalb eines try/catch {} stattfand Block, wo der catch hat die Ausnahme unterdrückt (nicht erneut ausgelöst oder mich davor gewarnt).