vRaptor com Spring detectar erro do hibernate ao persistir ou deletar POJO

Olá pessoal

Tenho uma lista de clientes e em cada item da lista um botão para a exclusão, estou executando uma ação ajax com jQuery passando o link com id do item que desejo excluir, mas, quando executo o dao.delete(entity) está ocorrendo um erro “DataIntegrityViolationException” e gostaria de pegar o erro e retornar pelo ajax uma mensagem com erro para o usuário.

Tentei colocar o delete dentro de “try catch”, mas, não pegou o erro.

Se alguém puder me ajudar desde já agradeço.

o erro acontece no commit da transação, que é fora do método…

o que vc pode fazer é dar um flush (session.flush() ou manager.flush()) dentro do metodo dao.delete(entity), daí ele força a checagem que dá esse erro?

Olá Lucas

Funcionou perfeitamente usando o flush, segue implementação:

    try {
      clienteDAO.delete(cli);
      clienteDAO.flush();
      result.forwardTo(Results.http()).body("Cliente excluído com sucesso!");
    } catch (Exception e) {
      result.forwardTo(Results.http()).body("Erro: " + e.getMessage());
    }

Obrigado!

só colocaria o flush dentro do método delete… mas tudo bem =)

no caso o método delete é do JpaRepository, não foi implementado.