OBS: Não sei se é a melhor forma de se configurar (podem criticar)
Tenho um framework que faz a persistência e utilizando o método abaixo:
Ao salvar o Usuario e o mesmo ferir uma contraint de unicidade no nome por exemplo, o banco de dados permanece intacto. Mas a propriedade user de Usuario passa a ter id e versao. O formulario é carregado com a mensagem de erro.
Quando as correcoes sao feitas no formulario e tenta-se incluir novamente, por o user possuir um id que nao existe na tabela um erro na fk de Usuario com User no banco de dados é lançado.
Como faço para que a sessão reconheça que houve algum problema e os objetos precisam retornar ao seu estado normal. Como o spring esta controlando a transação (AOP) o hibernate não sabe.