É o seguinte, tenho uma ficha que possui vários produtos.
A função para alterar fica assim:
@Put("/produtos/{produto.id}")
public void altera(@Valid Produto produto){
validator.onErrorRedirectTo(this).edita(produto.getId());
produtoDao.atualiza(produto);
result.redirectTo(FichaController.class).incluir(produto.getFicha().getId());
}
Ao realizar a atualização ele retorna para a ficha correspondente do produto. (OK)
Mas e para deletar? Como fazer se o produto não existe mais, e consequentemente o id da ficha referente a ele também não. Como fazer esse redirecionamento ?
Vamos pensar comigo, se você redirecionar para a ficha do produto e o produto não existe mais, das duas uma, ou você está com uma visão bem equivocada a respeito dos requisitos do teu projeto e deletou o produto sem que isso fosse, realmente, requerido ou você vai precisar rever o que esse requisito diz, pois, quando se trata de exclusão física (executar um DELETE), o registro referente ao tal produto deixa de existir imediatamente.
A não ser que a exclusão seja lógica, como inserir um valor à uma coluna como DATA_EXCLUSAO.
Eu acho que entendi o que você disse. Mas eu não estou conseguindo enxergar o que eu devo fazer para resolver esse problema de lógica.
Eu tenho a classe ficha, que possui nome e id.
E a classe produto que é preciso ser relacionada com uma ficha. Na hora do cadastro desse produto eu tenho a opção de escolher qual ficha eu quero.
Eu devo colocar um campo data_exclusao e o ato de deletar pode ser simplesmente remover esse id da ficha?