【问题标题】:How is more correct to get this data with spring-data-jpa?使用 spring-data-jpa 获取这些数据如何更正确?
【发布时间】:2019-05-07 02:07:25
【问题描述】:

例如,我需要在网页上显示统计表。此表由 5 行组成:

AVG-rating | 5
TotalSum   | 12.1
SumToday   | 2.1
SummMonth  | 8.6
SomeElse   | 666 

此表中的每个值 - 使用数据库中的聚合函数计算得出。

问题:使用spring-data-jpa 获取此数据如何更正确?

现在我有一项服务 - StatisticService 和公共方法 getStatistic(user);

在这个方法中,我从repository 调用5 methods 来获取每个统计值和表单响应。每个存储库方法 - native query

我不喜欢这种方法。我认为最好的方法是在database 中创建View 并选择所有统计信息在一个查询中查看

但我也不喜欢这种方法。因为我被绑在了基地上。基础包含逻辑。虽然在第一种情况下我使用原生查询,但我可以将它们重写为JPQL(但可能不是全部)。

如何使用spring-data-jpa 更正确地从数据库中提取聚合信息?

【问题讨论】:

  • 我会创建一个视图并使用@SecondaryTable 将其映射到实体,然后它们就成为实体的正常属性。这种方法的最大优点是您可以使用标准存储库方法在数据库级别进行排序和过滤。 stackoverflow.com/questions/33778895/…

标签: java postgresql spring-boot spring-data-jpa nativequery


【解决方案1】:

由于您在 DB 中计算了所有值,因此我看不到任何机会,而不是您每 5 次查询调用一次。否则你需要在你的代码中实现这个计算逻辑

【讨论】:

    猜你喜欢
    • 2020-03-11
    • 2017-06-05
    • 1970-01-01
    • 2019-11-18
    • 2013-03-07
    • 2015-09-03
    • 2019-06-03
    • 2022-01-06
    • 2020-11-02
    相关资源
    最近更新 更多