Luiz Gustavo,
você não pega os resultados como você descreveu:
select.getDescricao //Forma errada
select.getCodigoIBGE //Forma errada
Você manipula assim:
Cidade cid = (Cidade) sql.uniqueResult(); //Retorna o objeto,
if((TxtDescricao.getText().toUpperCase().equals( cid.getString("Descricao") )) {
//Faz a ação
}
Geralmente, eu faço as pesquisas usando o LIKE, e o retorno é uma lista de objetos,
“from Cliente as cliente where upper(cliente.nome) like :nome order by cliente.nome”
Aqui estou usando um iterator, mas pode usar um for também, como o Marcos descreveu.
java.util.List objetos = new java.util.Vector();
ClienteDao clientedao = new ClienteDao();
objetos = clientedao.findByNome(tfNome.getText());
java.util.Iterator <persistencia.Cliente> ClienteIter = objetos.iterator();
DefaultTableModel model = (DefaultTableModel) jTableCliente.getModel();
model.setRowCount(0);
while (ClienteIter.hasNext()) {
persistencia.Cliente cliente = ClienteIter.next();
java.util.Vector vetor1 = new java.util.Vector();
vetor1.addElement(cliente.getCodigo());
vetor1.addElement(cliente.getNome());
vetor1.addElement(cliente.getNomeFantasia());
vetor1.addElement(cliente.getCpfCnpj());
model.addRow(vetor1);
}
clientedao.getSession().close();
Aqui o codigo do clienteDao:
obs: Leia sobre DAO e Factory,
aqui to usando somente DAO.
package estoque.cliente;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import persistencia.Cliente;
import persistencia.HibernateUtil;
public class ClienteDao {
private Session session;
private Transaction tr;
public Session getSession() {
if (session == null)
session = HibernateUtil.getSessionFactory().openSession();
return session;
}
public void begin() {
tr = getSession().beginTransaction();
}
public void commit() {
tr.commit();
}
public void rollback() {
tr.rollback();
}
public List<Cliente> findByNome(String nome) {
Query select = getSession().createQuery("from Cliente as cliente where upper(cliente.nome) like :nome order by cliente.nome");
select.setString("nome", "%"+ nome.toUpperCase()+"%");
return select.list();
}
public Cliente get(int id) {
return (Cliente) getSession().get(Cliente.class, id);
}
public void save(Cliente cl) {
getSession().save(cl);
session.flush();
}
public void update(Cliente cl) {
getSession().update(cl);
session.flush();
}
public void delete(Cliente cl) {
getSession().delete(cl);
}
}