gpt4 book ai didi

java - Hibernate 搜索集合总数

转载 作者:行者123 更新时间:2023-11-29 22:45:04 24 4
gpt4 key购买 nike

假设我有一个解决方案,其中包含退款对象的ArrayList集合,其整数为amount

最终结果是我想在不使用 HQL 的情况下搜索 refundamount 总和的 resolution

目前我通过在 MySQL 中求和来完成此操作,虽然很笨拙,但它保持了规范化,我可以保证它是正确的。

我想到的一种方法是在 resolution 中设置一个 refundTotal,它是数据库中的一个字段。我有一个私有(private) 0 参数 setter ,它循环通过 refund,对 amount 求和并在刷新发生时存储它。 setter 在数据库检索时运行,因此从数据库中出来时它是正确的。 getter 在需要时确保它的正确性。

private setRefundTotal(){
ArrayList<Refund> refunds = getRefunds();
Integer refundTotalSum = 0;
for(refunds as Refund refund){
refundTotalSum+=refund.getAmount();
}
this.refundTotal = refundTotalSum;
}

public integer getRefundTotal(){
this.setRefundTotal();
return totalRefund;
}

如果我独立于解决方案更新退款,我必须获取并保存解决方案,以便refundTotal 保持一致。

我确信这是一个极其常见的场景,hibernate 有解决方案吗?

最佳答案

您可以考虑使用@Formula来代替收取退款,如下所示:

@Formula(value = "select sum(t.amount) from User_Transaction t where t.abstractenvelope_id = id")
private Long total;

查看详情here

关于java - Hibernate 搜索集合总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29182442/

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