sql >> Databáze >  >> RDS >> Mysql

org.hibernate.AssertionFailure:null id v záznamu (nevyplachovat relaci, když dojde k výjimce)

Výjimka:

Říká nám, že k výjimce relace došlo před bod, kde toto org.hibernate.AssertionFailure je hozen.

Přesněji org.hibernate.AssertionFailure je vyvoláno při session.flush() se děje, nikoli bod, kde došlo k chybě.

Výše uvedené je fakt, takže možný závěr z toho je:něco by mohlo potlačovat původní výjimka.

Hledejte tedy jiné možné body chyby:save() nebo saveOrUpdate() se možná pokouší zachovat entitu s null pole kde v tabulce je sloupec NOT NULL ?

TIP: Chcete-li pomoci s laděním, zkuste přidat session.flush() po každé interakci s Session objekt (např. session.save(obj) , session.merge(obj) , atd.), to snad způsobí org.hibernate.AssertionFailure aby se to stalo dříve, blíže místu, kde se odehrává skutečný problém. (Po ladění samozřejmě odstraňte session.flush() .)


V mém případě skutečný výjimka se odehrávala uvnitř try/catch {} blok, kde se catch potlačil výjimku (nevyvolal znovu ani mě na to neupozornil).



  1. SQL Server Parallel Backup Restore -1

  2. Jak ISNUMERIC() funguje v SQL Server

  3. Převeďte jeden řádek na více řádků s méně sloupci

  4. sql jdbc getgeneratedkeys vrátí id sloupce nenalezeno, typ sloupce neznámý