/** * INTERNAL: * Return true if the query uses default properties. * This is used to determine if this query is cacheable. * i.e. does not use any properties that may conflict with another query * with the same JPQL or selection criteria. */ @Override public boolean isDefaultPropertiesQuery() { return super.isDefaultPropertiesQuery() && (!this.isResultSetOptimizedQuery) && (this.isResultSetAccessOptimizedQuery == null || this.isResultSetAccessOptimizedQuery.equals(isResultSetAccessOptimizedQueryDefault)) && (this.shouldUseSerializedObjectPolicy == shouldUseSerializedObjectPolicyDefault) && (isDefaultLock()) && (!hasAdditionalFields()) && (!hasPartialAttributeExpressions()) && (!hasUnionExpressions()) && (!hasNonFetchJoinedAttributeExpressions()) && (this.fetchGroup == null) && (this.fetchGroupName == null) && (this.shouldUseDefaultFetchGroup); }
/** * INTERNAL: * Return true if the query uses default properties. * This is used to determine if this query is cacheable. * i.e. does not use any properties that may conflict with another query * with the same JPQL or selection criteria. */ @Override public boolean isDefaultPropertiesQuery() { return super.isDefaultPropertiesQuery() && (!this.isResultSetOptimizedQuery) && (this.isResultSetAccessOptimizedQuery == null || this.isResultSetAccessOptimizedQuery.equals(isResultSetAccessOptimizedQueryDefault)) && (this.shouldUseSerializedObjectPolicy == shouldUseSerializedObjectPolicyDefault) && (isDefaultLock()) && (!hasAdditionalFields()) && (!hasPartialAttributeExpressions()) && (!hasUnionExpressions()) && (!hasNonFetchJoinedAttributeExpressions()) && (this.fetchGroup == null) && (this.fetchGroupName == null) && (this.shouldUseDefaultFetchGroup); }
/** * INTERNAL: * Return the fields selected by the query. * This includes the partial or joined fields. * This is only used for custom SQL executions. */ public Vector getSelectionFields() { if (hasPartialAttributeExpressions()) { return getPartialAttributeSelectionFields(true); } Vector fields = NonSynchronizedVector.newInstance(); if (getExecutionFetchGroup() != null) { fields.addAll(getFetchGroupSelectionFields()); } else { fields.addAll(getDescriptor().getAllSelectionFields(this)); } // Add joined fields. if (hasJoining()) { addJoinSelectionFields(fields, true); } if (hasAdditionalFields()) { // Add additional fields, use for batch reading m-m. fields.addAll(getAdditionalFields()); } return fields; }
/** * Return the fields required in the select clause. * This must now be called after normalization, so it will get the aliased fields */ public Vector getSelectionFields(SQLSelectStatement statement, boolean includeAllSubclassFields) { ObjectLevelReadQuery owner = (ObjectLevelReadQuery)getQuery(); if (owner.hasPartialAttributeExpressions()) { return owner.getPartialAttributeSelectionFields(false); } Vector fields = NonSynchronizedVector.newInstance(); if (owner.getExecutionFetchGroup() != null) { fields.addAll(owner.getFetchGroupSelectionFields()); } else { if (includeAllSubclassFields) { fields.addAll(getDescriptor().getAllSelectionFields(owner)); } else { fields.add(statement.getExpressionBuilder()); } } // Add joined fields. if (owner.hasJoining()) { owner.addJoinSelectionFields(fields, false); } if (owner.hasAdditionalFields()) { // Add additional fields, use for batch reading m-m. fields.addAll(owner.getAdditionalFields()); } return fields; }
/** * INTERNAL: * Return the fields selected by the query. * This includes the partial or joined fields. * This is only used for custom SQL executions. */ public Vector getSelectionFields() { if (hasPartialAttributeExpressions()) { return getPartialAttributeSelectionFields(true); } Vector fields = NonSynchronizedVector.newInstance(); if (getExecutionFetchGroup() != null) { fields.addAll(getFetchGroupSelectionFields()); } else { fields.addAll(getDescriptor().getAllSelectionFields(this)); } // Add joined fields. if (hasJoining()) { addJoinSelectionFields(fields, true); } if (hasAdditionalFields()) { // Add additional fields, use for batch reading m-m. fields.addAll(getAdditionalFields()); } return fields; }
/** * Return the fields required in the select clause. * This must now be called after normalization, so it will get the aliased fields */ public Vector getSelectionFields(SQLSelectStatement statement, boolean includeAllSubclassFields) { ObjectLevelReadQuery owner = (ObjectLevelReadQuery)getQuery(); if (owner.hasPartialAttributeExpressions()) { return owner.getPartialAttributeSelectionFields(false); } Vector fields = NonSynchronizedVector.newInstance(); if (owner.getExecutionFetchGroup() != null) { fields.addAll(owner.getFetchGroupSelectionFields()); } else { if (includeAllSubclassFields) { fields.addAll(getDescriptor().getAllSelectionFields(owner)); } else { fields.add(statement.getExpressionBuilder()); } } // Add joined fields. if (owner.hasJoining()) { owner.addJoinSelectionFields(fields, false); } if (owner.hasAdditionalFields()) { // Add additional fields, use for batch reading m-m. fields.addAll(owner.getAdditionalFields()); } return fields; }
/** * INTERNAL: * Return true if the query uses default properties. * This is used to determine if this query is cacheable. * i.e. does not use any properties that may conflict with another query * with the same JPQL or selection criteria. */ public boolean isDefaultPropertiesQuery() { return super.isDefaultPropertiesQuery() && (isDefaultLock()) && (!isDistinctComputed()) && (!hasAdditionalFields()) && (!hasPartialAttributeExpressions()) && (!hasNonFetchJoinedAttributeExpressions()) && (!hasFetchGroup()) && (getFetchGroupName() == null) && (shouldUseDefaultFetchGroup()); }
if (hasAdditionalFields()) {
Helper.addAllToVector(fields, owner.getJoinedAttributeManager().getJoinedMappingExpressions()); if (owner.hasAdditionalFields()) {
concreteQuery.setSelectionCriteria(concreteQuery.getQueryMechanism().getSelectionCriteria().rebuildOn(concreteQuery.getExpressionBuilder())); if (concreteQuery.hasAdditionalFields()) { List rebuiltFields = new ArrayList(concreteQuery.getAdditionalFields().size()); for (Object field : concreteQuery.getAdditionalFields()) {
concreteQuery.setSelectionCriteria(concreteQuery.getQueryMechanism().getSelectionCriteria().rebuildOn(concreteQuery.getExpressionBuilder())); if (concreteQuery.hasAdditionalFields()) { List rebuiltFields = new ArrayList(concreteQuery.getAdditionalFields().size()); for (Object field : concreteQuery.getAdditionalFields()) {