Quero tratar esse erro , tenho a classe Categoria onde o campo descricao é unico. Quero q quando acontecer de inserir um valor duplicado ele redirecione o usuario a uma pagina de erro
HTTP Status 500 - Request processing failed; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement
[code]package br.senai.sp.eazypatrimonio.controller;
import java.util.List;
import javax.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import br.senai.sp.eazypatrimonio.dao.CategoriaDao;
import br.senai.sp.eazypatrimonio.modelo.Categoria;
@Transactional
@Controller
public class CategoriaController {
@Autowired
@Qualifier("jpaCategoriaDao")
private CategoriaDao daoCategoria;
@RequestMapping("formCategoria")
public String formCategoria() {
return "categoria/cadastro_categoria";
}
@RequestMapping("/addCategoria")
public String insereCategoria(Categoria c) {
if (c.getId() == null) {
daoCategoria.inserir(c);
return "redirect:formCategoria";
} else {
daoCategoria.alterar(c);
return "redirect:listaCategorias";
}
}
@RequestMapping("/listaCategorias")
public String listaCategorias(Model model) {
List<Categoria> listaCategorias = daoCategoria.buscarTodos();
model.addAttribute("categorias", listaCategorias);
return "categoria/lista_categoria";
}
@RequestMapping("/alterarCategoria")
public String alterarCategoria(Long id, Model model) {
Categoria c = daoCategoria.buscarId(id);
model.addAttribute("categoria", c);
return "categoria/cadastro_categoria";
}
@RequestMapping("excluirCategoria")
public String excluirCategoria(Long id) {
daoCategoria.excluir(id);
return "forward:listaCategorias";
}
}[/code]