Criteria API多重投影

时间:2019-05-10 07:10:49

标签: java hibernate

我对休眠标准api有问题。我试图得到两个总和预测。但是,我总是只获得第二个请求的总和的一列结果(对于即时i.totalCostPrice),如果我更改代码中总和的顺序,我将获得第二个请求的总和(i.totalPrice),但两者都不会我要有人知道解决方案吗?

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);

结果是[589704.0],我希望是[6127123.0,589704.0],如果我交换加和projectiosn,我会得到[6127123.0]

在SQL中,它将类似于从发票中选择SELECT SUM(total_price),SUM(total_cost_price)

1 个答案:

答案 0 :(得分:0)

如果有人感兴趣,则问题出在DetachedCriteria。它适用于Crieteria,但不适用于DetachedCriteria。