使用 Hibernate 连接 JasperReports

问题描述 投票:0回答:1

我现在正在将一个新模块制作成一个大型网络应用程序。我在 iReport 中创建了一个带有 Hibernate Connection 的报告。所有的 Hibernate 类都是我的队友制作的,hql 查询也是。所以,我们可以说,我在设计师中只做了“视觉”部分。

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

当我想将我的 *.jrxml 文件与 java web 应用程序集成时,我的问题就开始了。 Web 应用程序是使用 Spring 框架在 Maven 上制作的。所以我有附加文件 applicationContext.xml,其中也像 hibernate.cfg.xml 一样定义了 hibernate 会话工厂。

问题是,是否可以在 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);

我应该如何使休眠数据库连接对我的报告可见?

java hibernate jasper-reports
1个回答
0
投票

回答你第一个问题,是的,这是可能的。请参阅此链接了解 JasperReports-Hibernate 集成所需的必要配置: JasperReports 5.6.0 - Hibernate 示例
在 JasperReports 中使用 Hibernate 查询
虽然最后一个链接显示了 Spring 的特定要求:JasperReports - Spring MVC
希望这些有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.