Pessoal, é o seguionte:
Estou desenvolvendo um sistema que tem as seguintes entidades:
Cliente
Endereco
Contato
Cliente tem um atributo String nome, um Endereco e um Contato.
Endereco tem como atributos, rua, numero, etc… e Contato tem como atributos telefone, celular email, etc…
O modelo físico ficou uma tabela clientes com uma coluna nome e uma coluna codigo que é auto incrementada. Uma tabela enderecos com uma coluna para cada atributo mais uma coluna para codigo, que é uma chave estrangeira para o cliente. Na tabel contatos idem, cada coluna um atributo mais a coluna código sendo a chave estrangeira para o cliente.
O probelma começa na hora da inserção. Meu médoto cadastrarCliente do repositório de clientes, recebe um Cliente e “desmembra” para inserir ao banco de dados. O problema é que dou um getNome e jogo na table clientes, até ai td bem, mas como o codigo é auto incrementado, preciso, após inserir o nome, obte-lo para inserir os dados nas tabelas enderecos e contatos, que precisam desse codigo para ser a chave estrangeira para cliente. A única forma que enxerguei de fazer essa busca foi pelo nome, já que só tem o nome inserido na tabela. Mas essa abordagem é no mínimo duvidosa, já que pode haver outro cliente com o mesmo nome. Será que alguem pode me ajudar???
Sim… vale dizer q estou usando o PostgreSQL, e que o código q chamo de auto-incrementado é um tipo SERIAL do Postgre.
Antecipadamente obrigado pessoal!!!