使用与JasperReports的Hibernate连接

时间:2014-06-04 11:44:50

标签: java hibernate jasper-reports

我现在正在将一个新模块制作成一个大型的Web应用程序。我在 iReport 中创建了一个包含Hibernate Connection的报告。所有Hibernate类都已经由我的队友制作,hql查询也是。所以,我们可以说,我只制作了#34; visual"参与设计师。

iReport 中,一切都很棒,就像我想要的那样。我使用的是hibernate.cfg.xml文件,其中定义了会话工厂。

当我想将我的* .jrxml文件与java web app集成时,我的问题就出现了。 Web应用程序是使用Spring Framework在maven上创建的。所以我有额外的文件applicationContext.xml,其中hibernate会话工厂也像在hibernate.cfg.xml中一样定义。

问题是,是否有可能在applicationContext.xml中使用bean上的@autowired使其正常工作?

@Autowired
@Qualifier("binderSessionFactory")
protected SessionFactory sessionFactory;

如果是,我怎么能提供这个连接,以便它与我的* .jrxml文件一起工作?

Java代码:

OutputStream outputStream = response.getOutputStream();

Map parameters = (Map) model.get("parameters");

URL reportTemplate = getClass().getClassLoader().getResource("pathToFile/file.jrxml");
JasperReport jasperReport = JasperCompileManager.compileReport(reportTemplate.getPath());
jasperPrint = JasperFillManager.fillReport(jasperReport, parameters);

JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);

如何为报告显示hibernate数据库连接?

1 个答案:

答案 0 :(得分:0)

首先回答你的问题,是的,这是可能的。请参阅此链接以获取JasperReports-Hibernate集成所需的所需配置: JasperReports 5.6.0 - Hibernate Sample
Using Hibernate queries in JasperReports
虽然最后一个链接显示了Spring的具体要求:JasperReports - Spring MVC
希望这些有所帮助。