Estou realizando manutenção em um sistema onde utilizo um metodos para persistir dados em sequencia para diferentes tabela :
Pessoa PessoaFisica Empresa Endereco
Minha duvida é o que fazer quando ocorrer um erro no momento do registro da tabela de enderco por exemplo, os dados que foram persistido nas tabelas de Empresa,PessoaFisica e Pessoa sejam excluidos, evitando assim que a Empresa seja cadastrada apenas com os dados da referente a ela sem o relacionament de endereço.
public void exemplo(){
Service servico = new Service(); // Cria objeto servicoDAO
String recebeCnpj = servico.buscarRazao(razaoSocial());//
PessoaJuridica pj = new PessoaJuridica();
pj.setRazaoSocial(recebeCnpj);
long recebeJuricaID = servico.buscaPessoaJuridica(pj);
Date recebeData = servico.buscaDataAtual();
Pessoa p = new Pessoa();
p.setId(recebeJuricaID);
p.setDataUltimaAtualizacao(recebeData);
PessoaDAO pd = new PessoaDAO();
boolean confirmaAtualizacao = pd.atualizaPessoa(p);
if(confirmaAtualizacao == false){
JOptionPane.showMessageDialog(null,"Não foi realizado o cadastro de Pessoa!","Erro",JOptionPane.ERROR_MESSAGE);
}
else{
long recebePessoa = servico.buscaPessoa();
String converteMunicipio = Converte.intToString(municipio());
String auxMunicipio = null;
if(converteMunicipio.length() == 5){
auxMunicipio = converteMunicipio.substring(0,4);
}else{
auxMunicipio = converteMunicipio.substring(0,3);
}
int auxIdMunicipio = Integer.parseInt(auxMunicipio);
Empresa empresa = new Empresa();
empresa.setCodigo(codFilial);
empresa.setPortaria(inicio);
empresa.setMunicipioID(servico.buscaMunicipio(auxIdMunicipio));
empresa.setNomeFantasia(fantasiaFilial);
empresa.setCnpj(cnpjFilial);
empresa.setPessoaJuridicaID(recebeJuricaID);
empresa.setStatus(auxStatus);
EmpresaDAO cDao = new EmpresaDAO();
boolean confirmaEmpresa = cDao.adicionaEmpresa(empresa);
long recebeEmpresaID =servico.buscarEmpresaID(empresa);
if(confirmaEmpresa == false){
JOptionPane.showMessageDialog(null,"Não foi realizado o cadastro de Empresa!","Erro",JOptionPane.ERROR_MESSAGE);
}else{
EnderecoEmpresa end = new EnderecoEmpresa();
end.setBairro(bairroFilial);
end.setCep(cepFilial);
end.setComplemento(complementoFilial);
end.setLogradouro(logradouroFilial);
end.setNumero(Integer.parseInt(numeroFilial));
end.setEmpresaID(recebeEmpresaID);
end.setMunicipioPiID(servico.buscaMunicipio(auxIdMunicipio));
EnderecoEmpresaDAO endEmpresa = new EnderecoEmpresaDAO();
endEmpresa.adicionaEnderecoEmpresa(end);
}
}
}
Falowss…
EDIT - Por favor, use os tags [ code ] ao postar código.