public ReportQuery getSubQuery() { initializeCountSubQuery(); return subQuery; }
public ReportQuery getSubQuery() { initializeCountSubQuery(); return subQuery; }
/** * The query must be cloned, and the sub-expression must be cloned using the same outer expression identity. */ @Override protected void postCopyIn(Map alreadyDone) { initializeCountSubQuery(); super.postCopyIn(alreadyDone); ReportQuery clonedQuery = (ReportQuery)getSubQuery().clone(); if (!clonedQuery.isCallQuery()) { if (clonedQuery.getSelectionCriteria() != null) { clonedQuery.setSelectionCriteria(getSubQuery().getSelectionCriteria().copiedVersionFrom(alreadyDone)); // ensure the builder for the subquery is the same as the builder for the subquery's expression // for certain Subqueries (for instance batch queries for direct collections), when we get to this // point the builder for the clonedQuery will already be aliased. Replacing the builder with // the builder for the query's new expression solves this issue. if (clonedQuery.getExpressionBuilder() != null) { clonedQuery.setExpressionBuilder((ExpressionBuilder)clonedQuery.getExpressionBuilder().copiedVersionFrom(alreadyDone)); } } else if (clonedQuery.getExpressionBuilder() != null) { // Must clone the expression builder. clonedQuery.setExpressionBuilder((ExpressionBuilder)clonedQuery.getExpressionBuilder().copiedVersionFrom(alreadyDone)); } // Must also clone report items, group by, having, order by. clonedQuery.copyReportItems(alreadyDone); } setSubQuery(clonedQuery); }
/** * The query must be cloned, and the sub-expression must be cloned using the same outer expression identity. */ @Override protected void postCopyIn(Map alreadyDone) { initializeCountSubQuery(); super.postCopyIn(alreadyDone); ReportQuery clonedQuery = (ReportQuery)getSubQuery().clone(); if (!clonedQuery.isCallQuery()) { if (clonedQuery.getSelectionCriteria() != null) { clonedQuery.setSelectionCriteria(getSubQuery().getSelectionCriteria().copiedVersionFrom(alreadyDone)); // ensure the builder for the subquery is the same as the builder for the subquery's expression // for certain Subqueries (for instance batch queries for direct collections), when we get to this // point the builder for the clonedQuery will already be aliased. Replacing the builder with // the builder for the query's new expression solves this issue. if (clonedQuery.getExpressionBuilder() != null) { clonedQuery.setExpressionBuilder((ExpressionBuilder)clonedQuery.getExpressionBuilder().copiedVersionFrom(alreadyDone)); } } else if (clonedQuery.getExpressionBuilder() != null) { // Must clone the expression builder. clonedQuery.setExpressionBuilder((ExpressionBuilder)clonedQuery.getExpressionBuilder().copiedVersionFrom(alreadyDone)); } // Must also clone report items, group by, having, order by. clonedQuery.copyReportItems(alreadyDone); } setSubQuery(clonedQuery); }