Ajuda com querie Hibernate

Java

21/01/2014

Olá tenho o seguinte metodo:

public void localizaPessoa(String nome) {
List<Pessoas> busca = new ArrayList<Pessoas>();
Session session = HibernateUtil.getInstance().getSession();
String baseSQL = "from pessoas in class com.beans.Pessoas where pessoas.nome like '%" + nome + "%'";
Pessoas bean = (Pessoas) session.createQuery(baseSQL).uniqueResult();
session.close();
if (bean != null) {
busca.add(bean);

gridControl1.getVOListTableModel().clear();
for (int p = 0; p < busca.size(); p++) {
gridControl1.getVOListTableModel().addObject(busca.get(p));
}
}
}

Assim consigo preencher a grid conforme o que foi digitando no campo de busca só que consigo buscar 1 resultado...se usar isso em outra grid com varios nomes iguais não funciona, ja tentei tirar o "uniqueResult()" , não consigo retornar nomes iguais.
No aguardo.
Aurelio Maica

Aurelio Maica

Curtidas 0

Respostas

Fabiano Carvalho

Fabiano Carvalho

21/01/2014

Não entendi muito bem a sua dúvida.
Mas pelo que entendi falta o WHILE no RESULTADO obtido.
GOSTEI 0
Carlos Proença

Carlos Proença

21/01/2014

Fala Aurelio blz?

to dando uma passadinha rapida pelo forum.... entao vamos la


Cara com o unique Result só vai retorna um mesmo.... e não preicsa de tudo isso no HQL, tambem tenta dar um trim() no nome para que não venha com espaço...

uma dica usa Criteria pra fazer as consultas acho que vc não vai ficar tao perdido.....

na questão dos nomes que são retornados é só configurar o hibernate para showSql e ver qual o sql gerado e testar no banco.....


GOSTEI 0
Aurelio Maica

Aurelio Maica

21/01/2014

Segue a solução se alguem precisar:

public void localizaPessoa(String nome) {
List<Pessoas> busca = new ArrayList<Pessoas>();
Session session = HibernateUtil.getInstance().getSession();
String baseSQL = "from pessoas in class com.beans.Pessoas where pessoas.nome like '%" + nome + "%'";
busca = session.createQuery(baseSQL).list();
session.close();
if (busca != null) {


gridControl1.getVOListTableModel().clear();
for (int p = 0; p < busca.size(); p++) {
gridControl1.getVOListTableModel().addObject(busca.get(p));
}
}
}
GOSTEI 0
POSTAR