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).