/** * INTERNAL: * Check and return custom query flag. Custom query flag value is initialized when stored value is {@code null}. * Called from {@link #checkForCustomQuery(AbstractSession, AbstractRecord)} to retrieve custom query flag. * @param session Current session (not used). * @param translationRow Database record (not used). * @return Current custom query flag. Value will never be {@code null}. */ @Override protected Boolean checkCustomQueryFlag(final AbstractSession session, final AbstractRecord translationRow) { // #436871 - Use local copy to avoid NPE from concurrent modification. final Boolean useCustomQuery = isCustomQueryUsed; if (useCustomQuery != null) { return useCustomQuery; // Initialize custom query flag. } else { final boolean useCustomQueryValue = !isUserDefined() && isExpressionQuery() && getSelectionCriteria() == null && isDefaultPropertiesQuery() && (!hasOrderByExpressions()) && descriptor.getQueryManager().hasReadAllQuery(); setIsCustomQueryUsed(useCustomQueryValue); return Boolean.valueOf(useCustomQueryValue); } }
/** * INTERNAL: * Check to see if a custom query should be used for this query. * This is done before the query is copied and prepared/executed. * null means there is none. */ protected DatabaseQuery checkForCustomQuery(AbstractSession session, AbstractRecord translationRow) { checkDescriptor(session); // Check if user defined a custom query. if (isCustomQueryUsed() == null) { setIsCustomQueryUsed((!isUserDefined()) && isExpressionQuery() && (getSelectionCriteria() == null) && (!hasOrderByExpressions()) && (this.descriptor.getQueryManager().hasReadAllQuery())); } if (isCustomQueryUsed().booleanValue()) { return this.descriptor.getQueryManager().getReadAllQuery(); } else { return null; } }
/** * INTERNAL: * Check to see if a custom query should be used for this query. * This is done before the query is copied and prepared/executed. * null means there is none. */ @Override protected DatabaseQuery checkForCustomQuery(AbstractSession session, AbstractRecord translationRow) { Boolean useCustomQuery = isCustomQueryUsed; checkDescriptor(session); // Check if user defined a custom query. if (useCustomQuery == null) { setIsCustomQueryUsed((!isUserDefined()) && isExpressionQuery() && (getSelectionCriteria() == null) && isDefaultPropertiesQuery() && (!hasOrderByExpressions()) && (this.descriptor.getQueryManager().hasReadAllQuery())); // Value of isCustomQueryUsed is updated by setIsCustomQueryUsed method. useCustomQuery = isCustomQueryUsed; } if (useCustomQuery != null && useCustomQuery.booleanValue()) { ReadAllQuery customQuery = this.descriptor.getQueryManager().getReadAllQuery(); if (this.accessors != null) { customQuery = (ReadAllQuery) customQuery.clone(); customQuery.setIsExecutionClone(true); customQuery.setAccessors(this.accessors); } isCustomQueryUsed = useCustomQuery; return customQuery; } isCustomQueryUsed = useCustomQuery; return null; }
if (!hasOrderByExpressions()) { for (DatabaseField primaryKey : this.descriptor.getPrimaryKeyFields()) { addOrdering(getExpressionBuilder().getField(primaryKey));
if (!hasOrderByExpressions()) { for (DatabaseField primaryKey : this.descriptor.getPrimaryKeyFields()) { addOrdering(getExpressionBuilder().getField(primaryKey));