/** * Lookup the FetchGroup to use given a name and a flag taking into * consideration descriptor inheritance to ensure parent descriptors are * searched for named and default FetchGroup. This is used to determine the * FetchGroup to use in a query's prepare. */ public FetchGroup getFetchGroup(String groupName, boolean useDefault) { FetchGroup fg = null; if (groupName != null) { fg = getFetchGroup(groupName); } // Process default using hierarchy if (fg == null && useDefault) { fg = getDefaultFetchGroup(); } return fg; }
/** * Lookup the FetchGroup to use given a name and a flag taking into * consideration descriptor inheritance to ensure parent descriptors are * searched for named and default FetchGroup. This is used to determine the * FetchGroup to use in a query's prepare. */ public FetchGroup getFetchGroup(String groupName, boolean useDefault) { FetchGroup fg = null; if (groupName != null) { fg = getFetchGroup(groupName); } // Process default using hierarchy if (fg == null && useDefault) { fg = getDefaultFetchGroup(); } return fg; }
/** * INTERNAL: * Return if the query has an non-default fetch group defined for itself. */ protected boolean hasNonDefaultFetchGroup() { return this.descriptor.hasFetchGroupManager() && ((this.fetchGroup != null) || (this.fetchGroupName != null) || (!this.shouldUseDefaultFetchGroup && (this.descriptor.getFetchGroupManager().getDefaultFetchGroup() != null))); } }
/** * INTERNAL: * * Return the default fetch group on the descriptor. * All read object and read all queries will use the default fetch group if * no fetch group is explicitly defined for the query. */ public FetchGroup getDefaultFetchGroup() { if (!hasFetchGroupManager()) { //fetch group manager is not set, therefore no default fetch group. return null; } return getFetchGroupManager().getDefaultFetchGroup(); }
/** * INTERNAL: * Return if the query has an non-default fetch group defined for itself. */ protected boolean hasNonDefaultFetchGroup() { return this.descriptor.hasFetchGroupManager() && ((this.fetchGroup != null) || (this.fetchGroupName != null) || (!this.shouldUseDefaultFetchGroup && (this.descriptor.getFetchGroupManager().getDefaultFetchGroup() != null))); } }
/** * INTERNAL: * * Return the default fetch group on the descriptor. * All read object and read all queries will use the default fetch group if * no fetch group is explicitly defined for the query. */ public FetchGroup getDefaultFetchGroup() { if (!hasFetchGroupManager()) { //fetch group manager is not set, therefore no default fetch group. return null; } return getFetchGroupManager().getDefaultFetchGroup(); }
/** * INTERNAL: * * Return the default fetch group on the descriptor. * All read object and read all queries will use the default fetch group if * no fetch group is explicitly defined for the query. */ public FetchGroup getDefaultFetchGroup() { if (!hasFetchGroupManager()) { //fetch group manager is not set, therefore no default fetch group. return null; } return getFetchGroupManager().getDefaultFetchGroup(); }
@Override public String toString() { String str = super.toString(); if(this.fetchGroup != null) { str += '\n' + this.fetchGroup.toString(); } else if(this.fetchGroupName != null) { str += '\n' + "FetchGroup(" + this.fetchGroupName + ")"; } else if(this.shouldUseDefaultFetchGroup) { if(this.descriptor != null && this.descriptor.hasFetchGroupManager()) { FetchGroup defaultFetchGroup = descriptor.getFetchGroupManager().getDefaultFetchGroup(); if(defaultFetchGroup != null) { str += '\n' + "Default " + defaultFetchGroup.toString(); } } } return str; }
protected void addFetchGroupManagerLine(NonreflectiveMethodDefinition method, ClassDescriptor descriptor) { if (descriptor.getFetchGroupManager() == null) { return; } method.addLine("//Fetch groups"); method.addLine("descriptor.setFetchGroupManager(new FetchGroupManager());"); Map namedFetchGroups = descriptor.getFetchGroupManager().getFetchGroups(); if (descriptor.getFetchGroupManager().getDefaultFetchGroup() != null) { String defaultFetchGroupIdentifier = descriptor.getFetchGroupManager().getDefaultFetchGroup().getName() + "FetchGroup"; method.addLine(""); method.addLine("//Default fetch group -- " + defaultFetchGroupIdentifier); method.addLine("descriptor.getFetchGroupManager().setDefaultFetchGroup(" + defaultFetchGroupIdentifier + ");"); } if (namedFetchGroups.isEmpty()) { return; } for (Iterator namedFetchGroupIter = namedFetchGroups.values().iterator(); namedFetchGroupIter.hasNext();) { FetchGroup namedFetchGroup = (FetchGroup)namedFetchGroupIter.next(); String fetchGroupIdentifier = namedFetchGroup.getName() + "FetchGroup"; method.addLine(""); method.addLine("//Named fetch group -- " + fetchGroupIdentifier); addFetchGroupLines(method, namedFetchGroup, fetchGroupIdentifier); method.addLine("descriptor.getFetchGroupManager().addFetchGroup(" + fetchGroupIdentifier + ");"); } }
@Override public String toString() { String str = super.toString(); if(this.fetchGroup != null) { str += '\n' + this.fetchGroup.toString(); } else if(this.fetchGroupName != null) { str += '\n' + "FetchGroup(" + this.fetchGroupName + ")"; } else if(this.shouldUseDefaultFetchGroup) { if(this.descriptor != null && this.descriptor.hasFetchGroupManager()) { FetchGroup defaultFetchGroup = descriptor.getFetchGroupManager().getDefaultFetchGroup(); if(defaultFetchGroup != null) { str += '\n' + "Default " + defaultFetchGroup.toString(); } } } return str; }
protected void addFetchGroupManagerLine(NonreflectiveMethodDefinition method, ClassDescriptor descriptor) { if (descriptor.getFetchGroupManager() == null) { return; } method.addLine("//Fetch groups"); method.addLine("descriptor.setFetchGroupManager(new FetchGroupManager());"); Map namedFetchGroups = descriptor.getFetchGroupManager().getFetchGroups(); if (descriptor.getFetchGroupManager().getDefaultFetchGroup() != null) { String defaultFetchGroupIdentifier = descriptor.getFetchGroupManager().getDefaultFetchGroup().getName() + "FetchGroup"; method.addLine(""); method.addLine("//Default fetch group -- " + defaultFetchGroupIdentifier); method.addLine("descriptor.getFetchGroupManager().setDefaultFetchGroup(" + defaultFetchGroupIdentifier + ");"); } if (namedFetchGroups.isEmpty()) { return; } for (Iterator namedFetchGroupIter = namedFetchGroups.values().iterator(); namedFetchGroupIter.hasNext();) { FetchGroup namedFetchGroup = (FetchGroup)namedFetchGroupIter.next(); String fetchGroupIdentifier = namedFetchGroup.getName() + "FetchGroup"; method.addLine(""); method.addLine("//Named fetch group -- " + fetchGroupIdentifier); addFetchGroupLines(method, namedFetchGroup, fetchGroupIdentifier); method.addLine("descriptor.getFetchGroupManager().addFetchGroup(" + fetchGroupIdentifier + ");"); } }
protected void addFetchGroupManagerLine(NonreflectiveMethodDefinition method, ClassDescriptor descriptor) { if (descriptor.getFetchGroupManager() == null) { return; } method.addLine("//Fetch groups"); method.addLine("descriptor.setFetchGroupManager(new FetchGroupManager());"); Map namedFetchGroups = descriptor.getFetchGroupManager().getFetchGroups(); if (descriptor.getFetchGroupManager().getDefaultFetchGroup() != null) { String defaultFetchGroupIdentifier = descriptor.getFetchGroupManager().getDefaultFetchGroup().getName() + "FetchGroup"; method.addLine(""); method.addLine("//Default fetch group -- " + defaultFetchGroupIdentifier); method.addLine("descriptor.getFetchGroupManager().setDefaultFetchGroup(" + defaultFetchGroupIdentifier + ");"); } if (namedFetchGroups.isEmpty()) { return; } for (Iterator namedFetchGroupIter = namedFetchGroups.values().iterator(); namedFetchGroupIter.hasNext();) { FetchGroup namedFetchGroup = (FetchGroup)namedFetchGroupIter.next(); String fetchGroupIdentifier = namedFetchGroup.getName() + "FetchGroup"; method.addLine(""); method.addLine("//Named fetch group -- " + fetchGroupIdentifier); addFetchGroupLines(method, namedFetchGroup, fetchGroupIdentifier); method.addLine("descriptor.getFetchGroupManager().addFetchGroup(" + fetchGroupIdentifier + ");"); } }
ClassDescriptor parent = current.getInheritancePolicy().getParentDescriptor(); if (parent.hasFetchGroupManager()) { this.defaultFetchGroup = parent.getFetchGroupManager().getDefaultFetchGroup(); if(this.defaultFetchGroup != null) { return;
ClassDescriptor parent = current.getInheritancePolicy().getParentDescriptor(); if (parent.hasFetchGroupManager()) { this.defaultFetchGroup = parent.getFetchGroupManager().getDefaultFetchGroup(); if(this.defaultFetchGroup != null) { return;
/** * INTERNAL: * Add mandatory attributes to fetch group, create entityFetchGroup. */ public void prepareFetchGroup() throws QueryException { FetchGroupManager fetchGroupManager = this.descriptor.getFetchGroupManager(); if (fetchGroupManager != null) { if (this.fetchGroup == null) { if (this.fetchGroupName != null) { this.fetchGroup = fetchGroupManager.getFetchGroup(this.fetchGroupName); } else if (this.shouldUseDefaultFetchGroup) { this.fetchGroup = this.descriptor.getFetchGroupManager().getDefaultFetchGroup(); } } if (this.fetchGroup != null) { if (hasPartialAttributeExpressions()) { //fetch group does not work with partial attribute reading throw QueryException.fetchGroupNotSupportOnPartialAttributeReading(); } // currently SOP is incompatible with fetch groups setShouldUseSerializedObjectPolicy(false); this.descriptor.getFetchGroupManager().prepareAndVerify(this.fetchGroup); } } else { // FetchGroupManager is null if (this.fetchGroup != null || this.fetchGroupName != null) { throw QueryException.fetchGroupValidOnlyIfFetchGroupManagerInDescriptor(getDescriptor().getJavaClassName(), getName()); } } }
this.fetchGroup = fetchGroupManager.getFetchGroup(this.fetchGroupName); } else if (this.shouldUseDefaultFetchGroup) { this.fetchGroup = this.descriptor.getFetchGroupManager().getDefaultFetchGroup();
/** * INTERNAL: * Initialize the fetch groups. */ public void initialize(AbstractSession session) throws DescriptorException { if (!(Helper.classImplementsInterface(getDescriptor().getJavaClass(), ClassConstants.FetchGroupTracker_class))) { //to use fetch group, the domain class must implement FetchGroupTracker interface session.getIntegrityChecker().handleError(DescriptorException.needToImplementFetchGroupTracker(getDescriptor().getJavaClass(), getDescriptor())); } if (getDefaultFetchGroup() == null) { // Check for lazy mappings to build default fetch group. FetchGroup fetchGroup = new FetchGroup(); boolean hasLazy = false; for (DatabaseMapping mapping : getDescriptor().getMappings()) { if (mapping.isForeignReferenceMapping() || (!mapping.isLazy())) { fetchGroup.addAttribute(mapping.getAttributeName()); } else { hasLazy = true; } } if (hasLazy) { setDefaultFetchGroup(fetchGroup); } } }