浏览 4007 次
|
锁定老贴子 主题:用hibernate怎样实现这种分页
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2006-04-27
数据库:sql server 2k
表结构: factors: (factor_name, model_id) header: (header_id, date, ticker) detail: (header_id, factor_name, factor_value) 其中header_id是header表的primary key。 detail表和header表是多对一的关系。 需求: 客户提供一个date,要求把这一天的所有记录打印出来。因为结果集有几万条记录,所以想要分页。 每一个ticker一条记录。这个ticker对应的所有factor数据,按照不同的factor逐列显示。 比如: [code:1] ticker factor1 factor2 factor3 msft 1 10 20 ibm 20 30 12 sun 7 -5 9 [/code:1] 要求客户可以指定按照任意的factor排序结果。(比如,客户点击factor3,结果和分页就按照factor3的值排序) 问题: 在数据库设计里面,同一个ticker的不同factor的值并不在同一行里。客户端程序得到的结果集是这样的结构: (ticker, factor_name, factor_value) 如此,排序就不能简单地用一条sql搞定。(除非我用group by + sum)不过这个效率太差,不考虑。 这种情况下如果要分页,hibernate能做么?我现在是手工作的,比较繁琐的说。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2006-04-28
hibernate无法处理,大家有没有比较好的方法来处理呢?
莫非这种header-detail的数据库设计不常见么?不是典型的star schema么? |
|
| 返回顶楼 | |
|
最后更新时间:2006-05-16
為這個查詢建立一個視圖,將表中的數據做一定的行轉列的操作。然後做基於視圖的分頁查詢。
|
|
| 返回顶楼 | |
|
最后更新时间:2006-05-16
类似这种统计,hibernate几乎是很难办到的,貌似这也不完全是ORM的指责所在。
以前凡是碰到统计,全部改用JDBC,或者采用视图映射的方式做。 |
|
| 返回顶楼 | |
|
最后更新时间:2006-06-30
如果factor和ticker的数量不是很多的话,可以把factor和ticker放到内存里,这样实际上只需要对detail进行操作。对你的题意不是很明白。
|
|
| 返回顶楼 | |
|
最后更新时间:2006-07-18
HIBERNATE还是个持久化的框架. 这种复杂一点的计算没有. HQL不支持. 我项目中碰到所有这些不能实现的, 改为用视图, 或原始SQL.
|
|
| 返回顶楼 | |
|
最后更新时间:2006-07-21
碰到这种复杂的情况:一般都用存储过程+临时表解决的,
基于oracle数据库 |
|
| 返回顶楼 | |








