Remover pelo ID, Hibernate

4 respostas
Deluxe

Pessoal
preciso de uma ajuda como remover um Objeto através do ID

Hoje na minha aplicação estou fazendo assim

feriado = feriadoDAO.findById(feriado.getId());
feriadoDAO.remove(feriado);

è feito uma busca atravé do ID, assim retornando um objeto
depois é feito o remove no objeto, ou seja, desse jeito sempre é feito uma busca depois remove…

é possível fazer um remove atravé do ID direto ?
como ?

Exemplo: feriadoDAO.remove(feriado.getId());

vlw

4 Respostas

L

Ora…sobrescreva o método remove do seu DAO ou faça outro método

public boolean removeDireto(Feriado feriado){
boolean retorno = true;
    Feriado tmp =  findById(feriado.getId());

//se não achou retorna false 
if (tmp != null)
    remove(tmp); //Se o método remover retornar um boolean para ver se conseguiu excluir então fica assim   retorno = remove(tmp);
else
   retorno = false;

return retorno;
 

}
Regis_A_Rocha

acredito q vc irá precisar fazer uma buscar sim antes, ou entao o usuario tera q saber ql ID ira excluir.

vc pode fazer uma busca pelo ID pelo load ou get tbm

Deluxe

O ID eu tenho

feriado = feriadoDAO.findById(feriado.getId());

Neste caso meu objeto (feriado), só tem o ID nele, as outras propriedades dele está null
se eu enviar esse objeto direto para o remove, sem fazer a busca, o hibernate da erro, por ter propriedades null dentro dele,
por isso que é feito uma busca antes, ai sim o objeto vem todo populado, ai é possível excluir sem problemas…
o que eu realemente quero é não ter que fazer essa busca antes,
eu já tenho o ID, quero remover o objeto através dele

leopoldof
teu código fez a mesma coisa que minhas 2 linhas,
faz uma busca e remove.

L

Então faça uma query em SQL e manda o Hibernate executar a query direto, passando o id como argumento para execução da query sql…

Criado 4 de setembro de 2009
Ultima resposta 7 de set. de 2009
Respostas 4
Participantes 3