sql >> Base de Datos >  >> RDS >> Mysql

org.hibernate.AssertionFailure:ID nulo en la entrada (no vacíe la sesión después de que ocurra una excepción)

La excepción:

Nos dice que la excepción de sesión ha ocurrido antes el punto donde este org.hibernate.AssertionFailure es arrojado.

Para ser exactos, el org.hibernate.AssertionFailure se lanza cuando session.flush() está sucediendo, no el punto donde ocurrió el error.

Lo anterior es un hecho, por lo que una posible conclusión es:algo podría estar suprimiendo la excepción original.

Así que busca otros posibles puntos de error:A save() o saveOrUpdate() posiblemente intenta persistir una entidad con un null campo donde, en la tabla, la columna es NOT NULL ?

CONSEJO: Para ayudar en la depuración, intente agregar un session.flush() después de cada interacción con la Session objeto (por ejemplo, session.save(obj) , session.merge(obj) , etc.), con suerte esto causará el org.hibernate.AssertionFailure suceda antes, más cerca de donde está ocurriendo el verdadero problema. (Por supuesto, después de la depuración, elimine esos session.flush() .)


En mi caso, el real se estaba produciendo una excepción dentro de un try/catch {} bloque donde el catch suprimió la excepción (no volvió a lanzar ni me advirtió al respecto).