protected void replaceParamsInMacros(Query query) { Collection<QueryMacroHandler> handlers = AppBeans.getAll(QueryMacroHandler.class).values(); String modifiedQuery = query.getQueryString(); for (QueryMacroHandler handler : handlers) { modifiedQuery = handler.replaceQueryParams(modifiedQuery, queryParams); } query.setQueryString(modifiedQuery); }
protected void applyConstraints(Query query) { boolean constraintsApplied = security.applyConstraints(query); if (constraintsApplied && singleResult) { QueryParser parser = QueryTransformerFactory.createParser(query.getQueryString()); if (parser.isQueryWithJoins()) { QueryTransformer transformer = QueryTransformerFactory.createTransformer(query.getQueryString()); transformer.addDistinct(); query.setQueryString(transformer.getResult()); } } if (constraintsApplied && log.isDebugEnabled()) log.debug("Constraints applied: {}", printQuery(query.getQueryString())); }
@Override public boolean applyConstraints(Query query) { QueryParser parser = QueryTransformerFactory.createParser(query.getQueryString()); String entityName = parser.getEntityName(); List<ConstraintData> constraints = getConstraints(metadata.getClassNN(entityName), constraint -> constraint.getCheckType().database() && (constraint.getOperationType() == ConstraintOperationType.READ || constraint.getOperationType() == ConstraintOperationType.ALL)); if (constraints.isEmpty()) return false; QueryTransformer transformer = QueryTransformerFactory.createTransformer(query.getQueryString()); for (ConstraintData constraint : constraints) { processConstraint(transformer, constraint, entityName); } query.setQueryString(transformer.getResult()); for (String paramName : transformer.getAddedParams()) { setQueryParam(query, paramName); } return true; }
String logMsg = "Load previous query results: " + RdbmsQueryBuilder.printQuery(query.getQueryString()); log.debug(logMsg); long start = System.currentTimeMillis();
log.debug("Constraints applied: " + printQuery(query.getQueryString()));