Retornar objeto usando SQLQuery do Hibernate

3 respostas
prog.tiago

Bom dia,

Tenho esse sql no hibernate

SQLQuery sql = session.createSQLQuery("SELECT SUM(VALOR),ID_TIPOTRANSACAO FROM TRANSACAO WHERE ID_CLIENTE=? GROUP BY ID_TIPOTRANSACAO"); List<Transacoes> lista=sql.setEntity(0, cliente).list();

Alguém saberia como ao invés de retornar o ID_TIPOTRANSACAO (Long), retornar o objeto TipoTransacao?

Abraços

3 Respostas

Hebert_Coelho

Você teria que fazer um new dentro do select.

JPA Consultas e Dicas

Acho que na pagina 13 fala como instanciar um objeto na consulta.

prog.tiago

Hum. Grande JakeFrog

Gostei do seu exemplo:

package com.main;
 
import java.util.List;
 
import javax.persistence.EntityManager;
import javax.persistence.Query;
 
import com.model.PersonDogAmountReport;
 
public class Page13 {
 
    @SuppressWarnings("unchecked")
    public static void main(String[] args) {
        CodeGenerator.startConnection();
 
        CodeGenerator.generateData();
 
        EntityManager em = CodeGenerator.getEntityManager();
 
        Query query = em.createQuery("select new com.model.PersonDogAmountReport(p, size(p.dogs)) from Person p group by p.id");
 
        List<PersonDogAmountReport> persons = query.getResultList();
        for (PersonDogAmountReport personReport : persons) {
            System.out.println(personReport.getPerson().getName() + " has: " + personReport.getDogAmount() + " dogs.");
        }
 
        CodeGenerator.closeConnection();
    }
}

Mas da onde tá vindo esse CodoGenerator? Qual o seu import?

Hebert_Coelho

Ele está em anexo no projeto, se você quiser passar está na última página.

Ele serve apenas para criar dados no banco e executar a consulta. [=

Criado 29 de junho de 2012
Ultima resposta 29 de jun. de 2012
Respostas 3
Participantes 2