我现在正在将一个新模块制作成一个大型的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数据库连接?
答案 0 :(得分:0)
首先回答你的问题,是的,这是可能的。请参阅此链接以获取JasperReports-Hibernate集成所需的所需配置:
JasperReports 5.6.0 - Hibernate Sample和
Using Hibernate queries in JasperReports
虽然最后一个链接显示了Spring的具体要求:JasperReports - Spring MVC
希望这些有所帮助。