Mysql
 sql >> Database >  >> RDS >> Mysql

org.hibernate.AssertionFailure:id null in entrata (non svuotare la sessione dopo che si è verificata un'eccezione)

L'eccezione:

Ci dice che l'eccezione di sessione si è verificata prima il punto in cui questo org.hibernate.AssertionFailure viene lanciato.

Per essere esatti, il org.hibernate.AssertionFailure viene generato quando session.flush() sta accadendo, non nel punto in cui si è verificato l'errore.

Quanto sopra è un fatto, quindi una possibile conclusione da esso è:qualcosa potrebbe essere soppressivo l'eccezione originale.

Quindi cerca altro possibili punti di errore:A save() o saveOrUpdate() è possibile che cerca di rendere persistente un'entità con un null campo dove, nella tabella, la colonna è NOT NULL ?

SUGGERIMENTO: Per aiutare nel debug, prova ad aggiungere un session.flush() dopo ogni interazione con la Session oggetto (ad es. session.save(obj) , session.merge(obj) , ecc.), si spera che ciò causi il org.hibernate.AssertionFailure accada prima, più vicino a dove si sta verificando il vero problema. (Ovviamente, dopo il debug, rimuovi quei session.flush() .)


Nel mio caso, il reale si stava verificando un'eccezione all'interno di un try/catch {} bloccare dove il catch ha soppresso l'eccezione (non l'ha ripetuta né me ne ha avvertito).