Problema ao adicionar dados numa tabela (JDBC)

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!!!

Se vc depois da inserção fizer um select pegando tudo ordenado e no resultSet fizer res.last() vc pega o q vc acabou de inserir, é um jeito…

Ou vc não usa auto-increment, ai vc q tem q controlar o codigo…