Olá pessoal…
Já pesquisei bastante aqui no forum e no professor Google, mas não obtive resultado para meu problema.
Eu preciso fazer com que no ato de cadastrar um Dependente para uma determinada Pessoa, eu consiga inserir o codigo da Pessoa na minha tabela Dependente.
Ex. Vou cadastrar uma nova Pessoa e essa Pessoa possui Dependentes (que são populados na minha JTable) - Até ai tudo bem, ou seja, eu consigo inserir os Dependentes para cada determinada Pessoa. Mas o problema é que esses Dependentes estão sendo incluidos no BD com o codigo da Pessoa anterior.
Para esclarecer melhor tudo isso segue abaixo o que eu quero fazer:
Pessoa - João (codigo 1)
Dependentes - filhoJoao1, filhoJoao2, etc.
Pessoa - José (codigo 2)
Dependentes - filhoJose1, filhoJose2, etc.
Quando eu vou cadastrar o “José” no meu BD está sendo inserido da seguinte forma:
Pessoa - João (codigo 1)
Dependentes - filhoJoao1, filhoJoao2, filhoJose1, filhoJose2, etc.
Ou seja, os dependentes de José estão sendo cadastrados no João!
Segue abaixo meus códigos:
Método de retornar o ultimo em PessoasDAO
public Pessoas selecionarUltimo() throws Exception {
Session session = null;
try {
Criteria criteria = HibernateUtil.getSession().createCriteria(Pessoas.class);
criteria.addOrder(Order.desc("pes_Codigo"));
return (Pessoas)criteria.list().get(0);
} catch(Exception e){
e.printStackTrace();
throw e;
} finally {
if(session != null && session.isOpen()){
session.close();
}
}
}
Método de cadastrar o Dependente (dentro do form de cadastro de Pessoas)
public void cadastrarDep() {
try {
PessoasDAO pDao = new PessoasDAO();
Pessoas ultimo = new Pessoas();
ultimo = pDao.selecionarUltimo();
ManipulaTime mt = new ManipulaTime();
Dependentes d = new Dependentes();
d.setNome(txtNomeDependente.getText());
d.setDataNascimento(mt.convertStringToDate(txtDataNascDependente.getText()));
if(btbAlterar.isSelected())
d.setCodPessoa(pDao.carregarPorID(Integer.parseInt(txtCodigo.getText())));
else
d.setCodPessoa(ultimo);
ld.add(d);
txtNomeDependente.setText("");
txtDataNascDependente.setText("");
carregaTable(ld);
} catch (Exception e) {
e.printStackTrace();
}
}
Eu já tentei fazer algo assim mas não deu certo:
d.setCodPessoa(ultimo+1); // Pegar o ultimo codigo cadastrado no BD e somar mais um
Se puderem me ajudar eu agradeço…
Sugestoes são sempre benvindas!
Abraço