gpt4 book ai didi

java - Hibernate criteria + Projection List中的计算

转载 作者:行者123 更新时间:2023-11-29 00:15:50 26 4
gpt4 key购买 nike

发票

iddescriptionrateamount
1发票 A 3.0 10.0
2发票 B 4.0 20.0
3发票 C 5.0 30.0

DetachedCriteria criteria= DetachedCriteria.forClass(Invoice.class)

ProjectionList projList = new ProjectionList();
projList.add(...);

criteria.setProjection(projList);

List list = myDAO.findByCriteria(criteria);

//260

使用投影列表,是否可以计算(金额*比率)并返回所有记录的总和?

更新 1:

   double dblAmount = 0.0;
for(Invoice invoice : list){
dblAmount = dblAmount + (invoice.getRate() * invoice.getAmount());
}

使用 Hibernate 4,听说在不指定连接的情况下,使用这种方式 (invoice.getSomething()) 会影响性能吗?

最佳答案

您可以创建一个 @Formula 派生属性,然后在其上创建一个投影:

派生属性:

@Entity
@Table(name="INVOICE")
public class Invoice {
private double rate;
private double amount;
@Formula("rate * amount")
private double computed;
// ...
}

投影:

Projections.sum("computed")

关于java - Hibernate criteria + Projection List中的计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23012961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com