使用 hibernate 进行复杂查询(例如每组前 N 个)的最佳方法

2023-11-29

我现在正在开发一个报告应用程序一段时间,我使用 hibernate 来定义我的查询。然而,我越来越觉得对于报告用例来说这不是最好的方法。

  1. 查询仅产生部分列,因此不是类型对象 (除非你在java中转换所有字段)。
  2. 如果不直接使用 sql 或 总部。

我当前的问题是,我想获取每个组中的前 N ​​个,例如组中每个元素的最后 5 天,每天我都会显示访问者数量。

结果应该如下所示:

| RowName | 1-1-2009 | 2-1-2009 | 3-1-2009 | 4-1-2009 | 5-1-2009
| SomeName| 1        | 42       | 34       | 32       | 35

将每天每行存储的数据转换为这样的输出的最佳方法是什么?是时候依靠常规 SQL 并处理非类型化数据了吗?

我真的很想使用类型化对象来获取结果,但是 java 让我的生活变得非常困难。欢迎任何建议!


使用 Criteria API,您可以执行以下操作:

Session session = ...;
Criteria criteria = session.createCriteria(MyClass.class);
criteria.setFirstResult(1);
criteria.setMaxResults(5);
... any other criteria ...
List topFive = criteria.list();

要在普通 SQL 中执行此操作(并确认 Hibernate 正在执行您期望的操作),请查看这个帖子:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 hibernate 进行复杂查询(例如每组前 N 个)的最佳方法 的相关文章

随机推荐