Ajuda com querie Hibernate
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.
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
Curtidas 0
Respostas
Fabiano Carvalho
21/01/2014
Não entendi muito bem a sua dúvida.
Mas pelo que entendi falta o WHILE no RESULTADO obtido.
Mas pelo que entendi falta o WHILE no RESULTADO obtido.
GOSTEI 0
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.....
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
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));
}
}
}
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