DynamicReports + Hibernate

时间:2012-11-08 08:44:37

标签: java hibernate dynamic-reports

我想知道如何使用Hibernate数据集作为DynamicReports的数据源。我对它没有任何线索,也无法谷歌任何可接受的解决方案 有任何想法吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我试图解决类似的任务 - 使用带有DynamicReports的ejbql。我使用一些原生的JasperReports API使它工作。这是我的解决方法。

JasperReportBuilder builder = report()
.columns(
        col.column("CriterionName",       "CriterionName",      type.stringType()),
        col.column("Description",   "Description",  type.stringType()) )
      .title(Templates.createTitleComponent("entityManagerDatasource"))
      .pageFooter(Templates.footerComponent)
      .setQuery("SELECT c.CriterionName, c.Description from ConfigCriterions c", 
    QueryLanguage.EJBQL)
      .addParameter(JRJpaQueryExecuterFactory.PARAMETER_JPA_ENTITY_MANAGER, entityManager);
    JasperDesign design = builder.toJasperDesign();
    List<JRField> fields = design.getFieldsList();
    int i = 0;
    for (JRField field:fields)  {
        ++i;
        field.setDescription("COLUMN_" + i);
    }       

    JasperReport report = JasperCompileManager.compileReport(design);
    JasperPrint jasperPrint = JasperFillManager.fillReport(report, null);