A exceção:
Informa que a exceção de sessão ocorreu antes o ponto onde este
org.hibernate.AssertionFailure é lançado. Para ser exato, o
org.hibernate.AssertionFailure é lançado quando o session.flush() está acontecendo, não o ponto onde o erro ocorreu. O acima é um fato, portanto, uma possível conclusão é:algo pode estar suprimindo a exceção originária.
Procure por outros possíveis pontos de erro:A
save() ou saveOrUpdate() está possivelmente tentando persistir uma entidade com um null campo onde, na tabela, a coluna é NOT NULL ? DICA: Para ajudar na depuração, tente adicionar um
session.flush() após cada interação com a Session objeto (por exemplo, session.save(obj) , session.merge(obj) , etc.), esperamos que isso cause o erro org.hibernate.AssertionFailure acontecer mais cedo, mais perto de onde o problema real está ocorrendo. (Claro, após a depuração, remova aqueles session.flush() .) No meu caso, o real exceção estava ocorrendo dentro de um
try/catch {} bloco onde o catch suprimiu a exceção (não relançou ou me avisou sobre isso).