@Override public String getDataSourceName() throws UnifyException { return dataSource.getName(); }
@Override public void process(Report report) throws UnifyException { DataSourceDialect dialect = getDataSource(report).getDialect(); Query<? extends Entity> query = ReflectUtils.newInstance(queryClass); Map<String, String> fieldToColumnMap = dialect.getFieldToNativeColumnMap(query.getEntityClass()); ReportColumn[] reportColumns = getReportColumns(report.getCode()); for (ReportColumn rc : reportColumns) { report.addColumn(rc); query.select(rc.getName()); if (rc.isGroup() || rc.getOrder() != null) { query.order(rc.getName()); } // Convert property names to native column name rc.setName(fieldToColumnMap.get(rc.getName())); } populate(query, report.getReportParameters()); String nativeQuery = dialect.generateNativeQuery(query); report.setQuery(nativeQuery); }