Deletar tudo relacionado a Id do cliente…somente um cliente. ISso a partir de um número que o usuário após clicar em “excluir” aparece uma tela dizendo: " DIGITE A ID" ele digita e gostaria de pegar essa Id transformá-la para long e assim poder indicar para o banco de dados a id a ser excluída…
[quote=Andre Rosa]Acho que entendi. Você quer que o usuário informe a ID e, à partir dessa ID, deletar um usuário. Basicamente, basta especificar a ID usando o WHERE:
DELETE FROM TABELA WHERE ID = 123
Onde “123”, no exemplo, seria ID do usuário.[/quote]
MAs no meu códigfo como implemento para pegar da variável String ‘str’ e converter para Long e assim implementar no comando “destroy” ali em cima…
Excluir tudo significa a partir da id digitada como uma string, passar para long e aplicar no destroy, excluindo o nome da id, o endereço da id, o tel da id e etc… excluir tudo relacionado aquela id
public void actionPerformed(ActionEvent arg0) {
CadastroJpaController jpa = new CadastroJpaController();
//essas variáveis e o JoptionPane devem estar fora do for...
String str;
str=JOptionPane.showInputDialog("Digite a ID");
long id1=Long.parseLong(str);
Cadastro obj = new Cadastro();
List<Cadastro> lista = jpa.findCadastroEntities();
for (Cadastro l : lista) {
//aqui vc faz um if pra verificar se o id q vc digitou eh igual ao q estah na lista
if(id1 != 0 && id1 == l.getId()) {
obj.setId(id1);
JOptionPane.showConfirmDialog(null, "Cliente Deletado: " + l.getId() + " " + l.getNome() + " " + l.getEndereco() + " " + l.getHosts() + " " + l.getMac() + " " + l.getLogin() + " " + l.getSenha());
try {
jpa.destroy(l.getId());
} catch (NonexistentEntityException ex) {
Logger.getLogger(Aplicacao.class.getName()).log(Level.SEVERE, null, ex);
}
}
else {
JOptionPane.showMessageDialog(null, "Não foi encontrado nenhum cliente com este ID");
}
}
}
});[/code]
Eu já tinha seguido sua dica de tirar o for mas recoloquei pq gostei da verificação se a id digitada está correta, acabei por solucionar o problema do destroy que ali ele exclui todos na lista e o setId não tem função nenhuma, oq fiz foi apagar a linha JOptionPane.showConfirmDialog(null, "Cliente Deletado: " + l.getId() + " " + l.getNome() + " " + l.getEndereco() + " " + l.getHosts() + " " + l.getMac() + " " + l.getLogin() + " " + l.getSenha());
e aplicar corretamente o destroy [quote]jpa.destroy(id);[/quote] e não jpa.destroy(l.getId());
Obrigado,
Solucionado!!