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