spring-boot - 从枚举列 JPA CrudRepository H2 获取状态统计信息
问题描述
我有一个名为“status”的枚举列的表。我正在实现一个端点来获取有关活动和非活动条目的统计信息。它会返回这样的响应
{ "activeCount" : 10, "inactiveCount" : 10 }
每个条目有 4 种可能的状态(活动、非活动、等待批准、可疑)。activeCount = 处于活动状态的条目数量。inactiveCount = 处于非活动/等待批准/可疑状态的条目数量。
我正在使用控制器服务存储库模式和 H2 内存数据库。我需要尽可能快。还假设该表将来会保存大量数据,因此无法将所有条目都放入内存并计算状态统计信息。
您的最佳实践建议是什么?
提前感谢您的帮助。
解决方案
只需使用类似的查询select e.status, count(*) from Entity e group by e.status
。如果这对您来说还不够快,您将不得不以某种方式在专用表中维护每个组的当前计数,然后进行查询。这显然需要您为每个状态更改或插入/删除分别更改计数。通常,这可以通过使用触发器来完成。
推荐阅读
- keras - Keras回调执行顺序?
- python - 为什么 Marshmallow 对多个项目返回空但返回单个项目?
- angular - Angular 8:使用 ngRx/store 从 reducer 获取的结果不会以异步方式更新 UI(html)
- cefsharp - 无法在 CefSharp 应用程序中设置表单输入变量
- ios - 适用于 iOS 的 glib 构建
- c# - JSON反序列化后处理空值
- javascript - 如何为 React 应用程序中的不同组件设置不同的背景颜色?
- json - 如何访问 Golang 项目的 JSON 文件中的环境变量?
- javascript - 未捕获的类型错误:无法读取 JS 中未定义错误的属性“数组”
- java - java - 如何将数组更改为字符串,每个名称在java中的单独行上?