【发布时间】: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