Help - me ProjectionList e Criteria alias em coluna!

1 resposta
jcmird
Galera, tô apanhando aqui para colocar alias na colunas do select gerado pelo criteria
Criteria c1 = getSession().createCriteria(
					TbGereRcepCritArquPagfor.class);
			c1.createAlias("tbAgruGere", "agruGere");
			c1.createAlias("tbAgruGere.tbSegm", "segm");

			Calendar cal = Calendar.getInstance();
			cal.add(Calendar.DATE, -1);

			if (getDtMovi() == null)
				c1.add(Restrictions.eq("dtMovi", cal.getTime()));
			else
				c1.add(Restrictions.eq("dtMovi", getDtMovi()));

			ProjectionList proList = Projections.projectionList();
			proList.add(Projections.sum("qtArquRecbEnvi"));

			if (agrupador[0] == "REDE")
				proList.add(Projections.alias(Projections.groupProperty("agruGere.cdRegi"), "REDE"));
			else
				proList.add(Projections.sum("qtArquRecbEnvi"));

			if (agrupador[1] == "REGIONAL") {
				agrupador[0] = "REDE";
				proList.add(Projections.groupProperty("agruGere.cdRegi"));
			} else {
				proList.add(Projections.sum("qtArquRecbEnvi"));
				proList.add(Projections.sum("qtArquRecbEnvi"));

			}

			if (agrupador[2] == "SEGMENTO")
				proList.add(Projections.groupProperty("segm.nmSegm"));
			else
				proList.add(Projections.sum("qtArquRecbEnvi"));

			if (agrupador[3] == "VIP")
				proList.add(Projections.groupProperty("agruGere.inClieVip"));
			else
				proList.add(Projections.sum("qtArquRecbEnvi"));

			if (agrupador[4] == "NOVO")
				proList.add(Projections.groupProperty("agruGere.inClieNovo"));
			else
				proList.add(Projections.sum("qtArquRecbEnvi"));

			c1.setProjection(proList);

			List list = c1.list();

Este é o select gerado pelo hibernate

select
        sum(this_.QT_ARQU_RECB_ENVI) as y0_,
        agrugere1_.CD_REGI as y1_,
        sum(this_.QT_ARQU_RECB_ENVI) as y2_,
        sum(this_.QT_ARQU_RECB_ENVI) as y3_,
        sum(this_.QT_ARQU_RECB_ENVI) as y4_,
        sum(this_.QT_ARQU_RECB_ENVI) as y5_,
        sum(this_.QT_ARQU_RECB_ENVI) as y6_ 
    from
        CMA.TB_GERE_RCEP_CRIT_ARQU_PAGFOR this_,
        CMA.TB_AGRU_GERE agrugere1_,
        CMA.TB_SEGM segm2_ 
    where
        this_.CD_AGRU_GERE=agrugere1_.CD_AGRU_GERE 
        and agrugere1_.CD_SEGM=segm2_.CD_SEGM

gostaria de subtituir esse apelidos da colunas por outros mais amigaveis .. Exemplo y2_ para totQtdeReceb...
Alguem sabe como fazer isso?

1 Resposta

E

Pq nao usar HQL?

ex:

Query q = getSession().createQuery("SELECT sum(t.valor) totQtdeReceb FROM TbGereRcepCritArquPagfor t");
Criado 12 de março de 2009
Ultima resposta 12 de mar. de 2009
Respostas 1
Participantes 2