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
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.
Hum. Grande JakeFrog
Gostei do seu exemplo:
[code]
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();
}
}[/code]
Mas da onde tá vindo esse CodoGenerator? Qual o seu import?
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. [=