Java Hibernate:生成报告(存储过程)

Java Hibernate:生成报告(存储过程),java,oracle,hibernate,jpa,stored-procedures,Java,Oracle,Hibernate,Jpa,Stored Procedures,我正在使用Hibernate(JPA2.0)、Spring3.0.5和Oracle11g开发一个应用程序 我需要根据数据库中的许多表生成一些报告(CSV) 示例报告CSV如下所示: From_Date TO_Date Group Metric Mon Tue Wed Thu Fri 10/01/2012 10/02/2012 HP Average 29 74 400 99 1

我正在使用Hibernate(JPA2.0)、Spring3.0.5和Oracle11g开发一个应用程序

我需要根据数据库中的许多表生成一些报告(CSV)

示例报告CSV如下所示:

From_Date    TO_Date     Group   Metric     Mon     Tue      Wed     Thu    Fri

10/01/2012   10/02/2012   HP     Average    29       74       400     99     14 
10/02/2012   10/03/2012   HP     Average    81       19       22      108    07
10/03/2012   10/04/2012   HP     Average    11       62       09      16     01

10/01/2012   10/02/2012   HP     Total      924      452      915     100    940 
10/02/2012   10/03/2012   HP     Total      185      925      266     108    857
10/03/2012   10/04/2012   HP     Total      173      201      907     675    169
我的问题是,由于此报告将取决于许多表和不同的指标(平均值、总数和百分比),那么使用给定的技术堆栈的最佳方法是什么

我目前没有使用任何报告api

存储过程是未来的发展方向吗


谢谢

对于报告,您可以使用(PDF)或(MS文档,例如MS Excel)


问候。

您需要两项技术:

  • 用来检索和计算数据的东西
  • 创建可视化的东西
(+可选一些用于每隔一段时间自动生成报告的调度机制)

数据检索

我强烈反对使用JPA和Java代码来组装数据,因为这通常会很慢,除非只有少量数据

如果您在应用程序中使用JPA,我会首先尝试使用JPA视图对象+JPA调优(通过配置文件/注释)

如果这不起作用,请回到本机JDBC

有关此主题的更多信息,请访问我的博客:

如果JDBC太慢,我只会考虑存储过程(更难编写、版本、与应用程序保持同步等)

可视化

  • CSV文件您可以在Java中轻松创建
  • 有关正确的报告库/工具包,请参阅或
  • 对于临时报告(没有预定义模式的报告,也称为数据分析),我建议重新编译

Pentaho BI server(或类似产品)如果您能够利用提供的整个工具链(ETL加载数据、报表设计器工具、数据分析器、报表调度器等),您将受益匪浅。如果您只有几个报告,而且这些报告在短期内不会更改,那么我会坚持使用Java解决方案。

我知道API的相关信息。你能详细说明我为什么要使用这些吗?只要阅读博客文章-通过Hibernate,你可以使用结果转换器-transformer.ALIAS\u to\u BEAN轻松地将列表转换为POJO。对于某些报告,我们使用SQLQuery和映射到报告列的bean;实际上,我当时尝试的是调用entityManager.createQuery(java.lang.String qlString,java.lang.Class resultClass),将resultClass作为我的POJO,但这一个不起作用。如果有人使用HibernateAPI,最好知道有一个解决方案。