[RESOLVIDO]Quais metodos da classe Query equivalem aos metodos getInt, getString da classe ResultSet

3 respostas
Basilio

Galera quais metodos da classe org.hibernate.Query é equivalente ao getInt(String arg0), getString(String arg0), getByte(String arg0)… da classe java.sql.ResultSet ?

Eu fiz uma consulta em varias tabelas usando hibernate, agora nao sei como pegar o resultado de cada coluna que esta em um objeto Query.
Usando ResultSet seria so rs.getInt(“nome_da_tabela”).

3 Respostas

mynameisflaw

Se o seu HQL você definiu os atributos ou entidades que gostaria de retornar, o resultado da consulta será um array de object.
Você pode extrair um a um assim:

Object[] results = query…

Integer id = results[0];

String nome = results[1];

…

Endereco endereco = results[0];
Cliente cliente = results[1];

A ordem dos elementos do array será retornado de acordo com a ordem os itens da sua HQL.

att.

Basilio

Meu codigo é o seguinte:

Configuration cfg = new Configuration().configure("/hibernate.cfg.xml");
        SessionFactory sf = cfg.buildSessionFactory();
        Session s = sf.openSession();
        String sql = "SELECT tabela1.atributoX, tabela2.atributoY, tabela3.atributoZ";
        sql += " FROM Tabela1 tabela1, Tabela2 tabela2, Tabela3 tabela3";
    
        Query qr = s.createQuery(sql);

se eu estivesse sem o hibernate usando ResultSet no lugar de Query seria so fazer

String s = qr.getString("atributoY");

nao entendi como seria usando esse array de object =[

Basilio

A solução que eu encontrei foi:

Iterator i =qr.list().iterator();
        while (i.hasNext()) {
            Object[] row = (Object[]) i.next();
            System.out.println("AtributoX "+row[1]);
            System.out.println("AtributoY "+row[1]);
            System.out.println("AtributoZ  "+row[2]);
        }
Criado 12 de março de 2010
Ultima resposta 12 de mar. de 2010
Respostas 3
Participantes 2