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.