Pessoal, eu uso Hibernate, Spring e Thymeleaf implementando um projeto que que não havia uma Annotation “unique=true”, após adicionado, ao invés de aparecer uma mensagem de erro no próprio formulário(cadastro-usuário) aparece um erro direto no Browser, quando correto, ele redireciona normalmente para tela de pesquisa e informa a mensagem de sucesso normalmente.
Gostaria que ao digitar o nome do usuário duplicado retornasse uma mensagem de erro normalmente para o formulário de cadastro.
@NotNull
@Column(name = “username”,unique=true)
private String userName;
@PostMapping("/salvar")
public ModelAndView salvar(User user,UserRole userRole,
RedirectAttributes attributes,BindingResult result) {
if (result.hasErrors()) {
// Nem entra neste metodo
return novo(user,userRole);
}
Pessoa pessoa = pessoaRepository.findOne(codigoPessoaTemp);
user.setPessoa(pessoa);
user.setEnabled(1);
user.setUserRole(userRole);
userRepository.save(user);
attributes.addFlashAttribute("mensagem", "Usuario salva com sucesso!");
return new ModelAndView("redirect:/users/pesquisar");
}
Quando insironome de usuario que ja existe aparece o erro abaixo;
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Mon Apr 24 14:48:16 BRT 2017
There was an unexpected error (type=Internal Server Error, status=500).
could not execute statement;
SQL [n/a]; constraint [UK_r43af9ap4edm43mmtq01oddj6]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement
Meu form;