From 2b982e1da41191871af401fedabbd1f783950c64 Mon Sep 17 00:00:00 2001 From: Michael Seaton Date: Tue, 29 Aug 2023 09:07:24 -0400 Subject: [PATCH] REPORT-900 - HQL Query Builder should support entity names that differ from class names --- .../evaluation/querybuilder/HqlQueryBuilder.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/reporting/evaluation/querybuilder/HqlQueryBuilder.java b/api/src/main/java/org/openmrs/module/reporting/evaluation/querybuilder/HqlQueryBuilder.java index 4a858ebae..ea60309a8 100644 --- a/api/src/main/java/org/openmrs/module/reporting/evaluation/querybuilder/HqlQueryBuilder.java +++ b/api/src/main/java/org/openmrs/module/reporting/evaluation/querybuilder/HqlQueryBuilder.java @@ -52,7 +52,7 @@ public class HqlQueryBuilder implements QueryBuilder { protected Log log = LogFactory.getLog(getClass()); - private Map> fromTypes = new LinkedHashMap>(); + private Map fromTypes = new LinkedHashMap(); private boolean includeVoided = false; private List columns = new ArrayList(); private List joinClauses = new ArrayList(); @@ -93,13 +93,18 @@ public HqlQueryBuilder from(Class fromType) { } public HqlQueryBuilder from(Class fromType, String fromAlias) { - fromTypes.put(fromAlias, fromType); + fromTypes.put(fromAlias, fromType.getName()); if (!includeVoided && Voidable.class.isAssignableFrom(fromType)) { whereEqual((ObjectUtil.notNull(fromAlias) ? fromAlias + "." : "")+"voided", false); } return this; } + public HqlQueryBuilder from(String entityName, String fromAlias) { + fromTypes.put(fromAlias, entityName); + return this; + } + public HqlQueryBuilder innerJoin(String property, String alias) { joinClauses.add("inner join " + property + " as " + alias); return this; @@ -534,7 +539,7 @@ else if (!ObjectUtil.containsWhitespace(column)) { for (int i=0; i