Boa tarde pessoal!
Estou com um problema… preciso ordenar o resultado de um list do criteria por um campo adicionado via projections.
String sqlFragment = "sum(viewaux3_.metas + viewaux3_.metaslatente) as total";
List<Object[]> result =
getHibernateTemplate().findByCriteria(
DetachedCriteria.forClass(Campaign.class, "campaign")
.createAlias("groupAnnounce", "groupAnnounce")
.createAlias("groupAnnounce.announceKeywords", "announceKeyword")
.createAlias("announceKeyword.viewAux", "viewAux")
.createAlias("announceKeyword.keyword", "keyword")
.add(Expression.in(Campaign.PROP_ID, campaignIdList))
.add(Restrictions.sqlRestriction("viewaux3_.data between '" + dateFormat.format(startDate2) + "' and '" + dateFormat.format(endDate2) + "'"))
.setProjection(
Projections.projectionList()
.add(Projections.sum("viewAux." + ViewAux.PROP_PAGE_VIEWS))
.add(Projections.sum("viewAux." + ViewAux.PROP_METAS))
.add(Projections.sum("viewAux." + ViewAux.PROP_METAS_LATENTE))
.add(Projections.sqlProjection(sqlFragment, new String[] {"total"}, new Type[] {Hibernate.INTEGER}))
.add(Projections.sum("viewAux." + ViewAux.PROP_VALOR))
.add(Projections.sum("viewAux." + ViewAux.PROP_VALOR_LATENTE))
.add(Projections.groupProperty("keyword." + Keyword.PROP_NAME))
.add(Projections.groupProperty(Campaign.PROP_ID)))
.addOrder(Order.desc("total")));
Esse código não rola porque a propriedade total não existe em nenhum dos beans.
Alguém saberia como fazer isso?
[] ś