Segue o código.
public void InserirPessoaFisica(PessoaFisica pf) throws SQLException {
String sql1= "INSERT INTO tblPessoa(IdPessoaTipo) VALUES (1);";
Connection conexao1 = (Connection) ConexaoFactory.Conection();
PreparedStatement comando1 = conexao1.prepareStatement(sql1);
comando1.executeUpdate();
ResultSet rs =comando1.getGeneratedKeys();
//long val = ((Number) rs.getObject(1)).intValue();
long id =0;
if (rs.next()) {
id =rs.getInt(1);
}
System.out.println(id);//Imprime o código gerardo pelo primeiro insert sql1
PessoaTipo pt = new PessoaTipo();
pt.setIdPessoaTipo(id);
String sql= "INSERT INTO tblPessoaFisica(nome,cpf,passaporte,DataNascimento,IdPessoaTipo) VALUES (?,?,?,?,?);";
Connection conexao = (Connection) ConexaoFactory.Conection();
PreparedStatement comando = conexao.prepareStatement(sql);
comando.clearParameters();
comando.setString(1, pf.getNome());
comando.setString(2, pf.getCpf());
comando.setString(3,pf.getPassaporte());
comando.setDate(4, new Date (pf.getDataNascimento().getTimeInMillis()));
comando.setNString(5, pf.getPessoaTipo().setIdPessoaTipo(id)); // aqui acontece o erro
comando.executeUpdate();
Quem poder ajudar grato.