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