Demora na consulta

Pessoal é o seguinte… comecei a mexer com hibernate faz pouco tempoo
e peço que tenham paciencia… pois sou novato
mas blz… vamos la

fiz um Cadastro de Cliente
fiz a classe ClienteDAO, a classe Cliente… que manipula o Objeto e o formulario

e o meu formulário cliente… vai ter realmente muitos clientes
e eu estou usando mysql por enquanto…

e eu cadastrei pouco mais de dez mil clientes no banco

soh que na hora de carregar o formulario… demora mais de um minutoo… fica fazendo a busca e somente depois que consultou tudo que vai exibir o formulario

será que tem como alguem me explica como faço pra deixar mais rapidoo

ou alguem me corrigi se minha classe estiver errada

[code]package objetos;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;

@SuppressWarnings(“serial”)
@Entity
@Table(name = “CAD_CLIENTE”)
@SequenceGenerator(name = “CLIENTE_CODIGO_SEQ”, sequenceName = “CLIENTE_CODIGO_SEQ”)
public class Cliente implements Serializable{

@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "CLIENTE_CODIGO_SEQ")
@Column(name = "CODIGO", nullable = false)
private int codigo;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "COD_CEP")
private Cep cep;	
@OneToMany(mappedBy="cliente", fetch = FetchType.LAZY,cascade = { CascadeType.ALL }) 
@Cascade(org.hibernate.annotations.CascadeType.ALL)  
@LazyCollection(LazyCollectionOption.FALSE)
private List <Dependente> dependentes = new ArrayList<Dependente>();
@Column(name = "RUA", length = 50)
private String rua;
@Column(name = "BAIRRO", length = 30)
private String bairro;
@Column(name = "RAZAOSOCIAL", length = 50)
private String razaoSocial;
@Column(name = "FANTASIA",length = 50)
private String fantasia;
@Column(name = "PAGINA",length = 50)
private String pagina;
@Column(name = "EMAIL",length = 50)
private String email;
@Column(name = "CPFCNPJ", unique = true,length = 18)
private String cpfCnpj;
@Column(name = "FAX",length = 40)
private String fax;
@Column(name = "TELEFONE",length = 40)
private String telefone;
@Column(name = "DATA_CADASTRO")
private Date data;
@Column(name = "INSCRICAOESTADUAL",length = 18)
private String inscricaoEstadual;
@Column(name = "COMPLEMENTO",length = 50)
private String complemento;
@Column(name = "NUMERO",length = 8)
private String numero;
@OneToMany(mappedBy="cliente", fetch = FetchType.LAZY)  
@Cascade(org.hibernate.annotations.CascadeType.ALL)  
@LazyCollection(LazyCollectionOption.FALSE)
private List <Contato> contatos = new ArrayList<Contato>();
@OneToMany(mappedBy="cliente", fetch = FetchType.LAZY)  
@Cascade(org.hibernate.annotations.CascadeType.ALL)  
@LazyCollection(LazyCollectionOption.FALSE)
private List <Veiculo> veiculos = new ArrayList<Veiculo>();
@Column(name = "PAI",length = 50)
private String pai;
@Column(name = "MAE",length = 50)
private String mae;
@Column(name = "NATURALIDADE",length = 50)
private String naturalidade;
@Column(name = "DATA_NASCIMENTO",length = 50)
private Date dataNascimento;
@Column(name = "SEXO",length = 1)
private String sexo;
@Column(name = "ESTADO_CIVIL",length = 10)
private String estadoCivil;
@Column(name = "NACIONALIDADE",length = 50)
private String nacionalidade;
@Column(name = "OBSERVACAO",length = 50)
private String obs;
@Column(name = "NOME_FIADOR",length = 50)
private String nomeFiador;
@Column(name = "ENDERECO_FIADOR",length = 50)
private String enderecoFiador;
@Column(name = "CEP_FIADOR",length = 18)
private String cepFiador;
@Column(name = "TEFONE_FIADOR",length = 18)
private String foneFiador;
@Column(name = "BENS_FIADOR",length = 50)
private String bensFiador;
@Column(name = "PROFISSAO_FIADOR",length = 50)
private String profissaoFiador;
@Column(name = "RENDA_FIADOR", length = 50)
private String rendaFiador;
@Column(name = "CPF_FIADOR",length = 18)
private String cpfFiador;
@Column(name = "RG_FIADOR",length = 18)
private String rgFiador;
@Column(name = "REQUESICAO", length = 2)
private String requisicao;
@Column(name = "ENDERECO_COBRANCA",length = 80)
private String enderecoCobranca;@Column(name = "CEP_COBRANCA",length = 18)
private String cepCobranca;
@Column(name = "TELEFONE_COBRANCA",length = 18)
private String telefoneCobranca;
@Column(name = "DIA_FECHAMENTO_COBRANCA")	
private int diaFechamentoCobranca;
@Column(name = "DIA_VENCIMENTO_COBRANCA")
private int diaVencimentoCobranca;
@Column(name = "VENDA_CHEQUE", length = 2)
private String vendaCheque;
@Column(name = "VENDA_CARTAO", length = 2)
private String vendaCartao;
@Column(name = "VENDA_FINANCEIRA", length = 2)
private String vendaFinaceira;
@Column(name = "VENDA_DUPLICATA", length = 2)
private String vendaDuplicata;
@Column(name = "VENDA_BOLETO", length = 2)
private String vendaBoleto;
@Column(name = "VENDA_PROMISSORIA", length = 2)
private String vendaPromissoria;
@Column(name = "VENDA_CONTROLE", length = 2)
private String vendaControle;	
@Column(name = "VENDA_LIMITE")
private Double limite;
@Column(name = "REFERENCIA_TELEFONE_COMERCIAL1", length = 50)
private String referenciaTelefoneComercial1;
@Column(name = "REFERENCIA_TELEFONE_COMERCIAL2", length = 50)
private String referenciaTelefoneComercial2;
@Column(name = "REFERENCIA_TELEFONE_PESSOAL", length = 50)
private String referenciaTelefonePessoal;
@Column(name = "REFERENCIA_GARANTIA", length = 50)
private String referenciaGarantia;
@OneToMany(mappedBy="cliente", fetch = FetchType.LAZY)  
@Cascade(org.hibernate.annotations.CascadeType.ALL)  
@LazyCollection(LazyCollectionOption.FALSE)
private List <Imovel> imoveis = new ArrayList<Imovel>();
@OneToMany(mappedBy="cliente", fetch = FetchType.LAZY)  
@Cascade(org.hibernate.annotations.CascadeType.ALL)  
@LazyCollection(LazyCollectionOption.FALSE)
private List <Equipamento> equipamentos = new ArrayList<Equipamento>();
@OneToMany(mappedBy="cliente", fetch = FetchType.LAZY)  
@Cascade(org.hibernate.annotations.CascadeType.ALL)  
@LazyCollection(LazyCollectionOption.FALSE)
private List <Animal> animais = new ArrayList<Animal>();
@Column(name = "TIPO_CLIENTE", length = 10)
private String tipoCliente;
@Column(name = "SUB_TIPO_CLIENTE", length = 2)
private String subTipoClienteFornecedor;
@Column(name = "SUB_TIPO_FORNECEDOR", length = 2)
private String subTipoFornecedor;
@Column(name = "TIPO_FORNECEDOR", length = 2)
private String tipoFornecedor;
@Column(name = "TIPO_TRANSPORTE", length = 2)
private String tipoTransporte;
@Column(name = "TIPO_FUNCIONARIO", length = 2)
private String tipoFuncionario;
@Column(name = "INATIVO", length = 2)
private String inativo;
@Column(name = "CANCELADO", length = 2)
private String cancelado;

geters and seters	

}[/code]

e parte do formulario

[code]
try {
carregaLista();
} catch (Exception e) {
JOptionPane.showMessageDialog(null,“Erro ao tentar carregar clientes !”,“Aviso”,JOptionPane.ERROR_MESSAGE);
}

private void carregaLista() throws Exception{
ClienteDAO hibernateDAO = new ClienteDAO();
listClientes = hibernateDAO.selecionarTodos();
}[/code]

Mas na realidade quando eu fosse carregar meu formulario
gostaria de selecionar da tabela cliente
apenas codigo, razaosocial e fantasia e conforme mudasse o item do jtable mudasse os valores dos campos abaixo…

como faço para selecionar apenas codigo, razaosocial e fantasia da minha tablea?

alguem??