Pessoal estou com uma pequena dificuldade em um formulário de busca avançada no sistema que estou desenvolvendo, Pois nele eu possuo o nome, cpf, rg, bairro e etc, ai eu queria realizar uma busca no banco através do hibernate para que possa ser visualizado na tabela, eu faço a busca tudo certo pelo nome, ai vem o primeiro problema, se eu não colocar o nome completo ele não aparece, tipo eu tenho Marcelo Aurino no banco, se eu colocar apenas o Marcelo ele não mostra ninguém, ou seja, eu tenho que digitar o nome completo para que ele possa mostrar alguém. Outra coisa, os dados estão divididos, em tabelas diferentes que irei mostrar, eu estou mostrando o nome do candidato só que o telefone dele esta na tabela contato, como faço para pegar os dados dessa tabela e joga-los ao mesmo tempo que eu jogo os dados dele na tabela? a ultima pergunta, como faço para pegar os dados só dos campos que foram preenchidos e assim criar a minha query de buscar para que os dados do banco de acordo com a busca sejam mostrados?
Abaixo segue o meu CandidatoDAO com a função de buscaavancada que criei nele, essa função pega apenas o nome digitado na tela e procura ele no banco, só que tenho que digitar o nome completo se não ele diz que não tem ninguém com o determinado nome no banco.
[code]public List BuscaAvancada(String nomeConsulta)
{
HibernateUtil hu = new HibernateUtil();
Session ss = hu.getConexao(new Candidato());
Transaction transacao = ss.beginTransaction();
if(nomeConsulta != null){
Query listagem_query = ss.createQuery("FROM DadosPessoais WHERE nome IN :nome");
listagem_query.setParameter("nome", nomeConsulta);
List<DadosPessoais> dps = listagem_query.list();
ss.getTransaction().commit();
return dps;
}
return null;
} [/code]
Aqui está a minha função para popular o jtable com os dados do banco de dados através do hibernate.
public void BuscaAvanca() {
DefaultTableModel modelo = (DefaultTableModel) Listar.getModel();
modelo.setNumRows(0);
CandidatoDAO cd = new CandidatoDAO();
try {
if (nomeBC.getText() != null) {
List<DadosPessoais> listaDP = cd.BuscaAvancada(nomeBC.getText());
for (DadosPessoais dp : listaDP) {
modelo.addRow(new Object[]{dp.getId(), dp.getNome(), dp.getIdade(),});
}
}
} catch (Exception erro) {
JOptionPane.showMessageDialog(this, "Erro ao tentar listar pessoas" + erro);
}
}
OBS: Ambos os codigos estão funcionando perfeitamente só que faltando as funções que informei logo no começo do topico.
Sei que é muita coisa pessoal, mas esotu quase acabando o sistema aqui onde trabalho só que eu sou o unico que estou desenvolvendo e não tenho com quem tirar duvidas aqui no trabalho. Desde já agradeço pela ajuda.
Muito obrigado
Brincadeira hehe