I have a problem with hibernate criteria api. I am trying to get two sum projections. However I always get only one column result with the second requested sum (for instant i.totalCostPrice), if I change the order of the sums in code, I will get the second one (i.totalPrice), but never both of them as I require. Does anybody know the solution please?
DetachedCriteria totalSumsCriteria = DetachedCriteria.forClass(Invoice.class, "i");
ProjectionList pList = Projections.projectionList();
pList.add(Projections.alias(Projections.sum("i.totalPrice"), "totalListPriceSum"));
pList.add(Projections.alias(Projections.sum("i.totalCostPrice"), "totalCostPriceSum"));
totalSumsCriteria.setProjection(pList);
totalSumsCriteria.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
the result is [589704.0], I expect [6127123.0, 589704.0], if I swap adding sum projectiosn, I get [6127123.0]
in SQL it would be something like SELECT SUM(total_price), SUM(total_cost_price) FROM invoice
If anyone is interested, the problem is with the DetachedCriteria. It works well with Crieteria, but not with DetachedCriteria.