Boa tarde,
Gostaria de saber como faço para forçar o Hibernate a gerar o alias das tabelas com o mesmo alias que defino quando estou criando o criteria.
O código é mais ou menos esse:
ProjectionList pl = Projections.projectionList();
pl.add(Projections.groupProperty("set.dtBase"), "dtBase");
pl.add(Projections.groupProperty("set.idSetor"), "idSetor");
pl.add(Projections.groupProperty("set.dsSetor"), "dsSetor");
pl.add(Projections.sqlProjection("SUM( oper.vl_principal * ( ISNULL( set.pc_garantia_base_100, 100 ) / 100.0 ) )", new String[]{"vlPrincipal"}, new Type[]{Hibernate.DOUBLE}));
pl.add(Projections.sum("oper.vlProvisao"), "vlProvisao");
Criteria criteria = sessao.createCriteria(OperacaoVO.class, "oper");
criteria.setProjection(pl);
criteria.createAlias("cliente", "cli", Criteria.LEFT_JOIN);
criteria.createAlias("cli.setor", "set", Criteria.LEFT_JOIN);
A query gerada é essa:
select
set2_.dt_base as y0_,
set2_.id_setor as y1_,
set2_.ds_setor as y2_,
SUM( oper.vl_principal * ( ISNULL( set.pc_garantia_base_100, 100 ) / 100.0 ) ),
sum(this_.vl_provisao) as y4_
from
TB_OPERACAO this_
left outer join TB_CLIENTE_HISTORICO cli1_
on this_.id_cliente_historico=cli1_.id_cliente_historico
left outer join TB_SETOR_HISTORICO set2_
on cli1_.id_setor_historico=set2_.id_setor_historico
Como pode se ver o alias oper virou this_ e cli virou cli1_. Eu não queria que o hibernate fizesse isso, gostaria que ela mantivesse o alias que eu coloquei.
Alguem pode me ajudar?