Bem estou querendo que apareça na tabela todas as cidades que possuam certo nome… Ex:
usando o KeyReleased num txtfield nao sei se é esse o metodo, qdo digitar a letra “a” aparece todas as cidades que possuam a letra “a” no nome, porem no meu metodo, ele soh aparece um resultado por vez…
colocando “po”, nao aparece nada, mas se digitar “por” aparece Porto Alegre, pois soh tem essa cidade com “por” no nome… » ex
metodo
private void jtfPesquisaKeyReleased(java.awt.event.KeyEvent evt) {
List<Cidade> cidades = daoCidade.getCidades();
dtm.setRowCount(0);
for (Cidade cid : cidades) {
String nome = cid.getNome();
cid = daoCidade.buscaPorNome(jtfPesquisa.getText());
if (nome.equalsIgnoreCase(cid.getNome())) {
dtm.addRow(new Object [] { cid.getCodigo() , cid.getNome(), cid.getEstadoCodigo().getNome(), cid.getCep()});
jtbCidade.setModel(dtm);
}
}
}
no CidadeDAO
public Cidade buscaPorNome(String nome){
Cidade cidade = null;
try{
if(!em.isOpen()){
em = emf.createEntityManager();
}
Query query = em.createNamedQuery("Cidade.findByNome");
nome = ("%"+nome+"%");
query.setParameter("nome",nome);
cidade = (Cidade)query.getSingleResult();
}catch(NoResultException erro){
System.out.println("Não encontrado");
}
return cidade;
}
na classe cidade
@NamedQuery(name = "Cidade.findByNome", query = "SELECT c FROM Cidade c WHERE c.nome LIKE :nome")
quando nao aparece nada o erro que surge é esse:
Exception in thread "AWT-EventQueue-0" javax.persistence.NonUniqueResultException: result returns 2 elements
at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:89)
at org.iVitrim.dao.DAOCidade.buscaPorNome(DAOCidade.java:114)
at org.iVitrim.telas.Tabelas_Cidades.jtfPesquisaKeyReleased(Tabelas_Cidades.java:221)
at org.iVitrim.telas.Tabelas_Cidades.access$400(Tabelas_Cidades.java:17)
at org.iVitrim.telas.Tabelas_Cidades$6.keyReleased(Tabelas_Cidades.java:133)
at java.awt.Component.processKeyEvent(Component.java:5999)
.......
vlw
=]
