Class LoadGroup

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable

    public class LoadGroup
    extends AttributeGroup
    Purpose: Used to load specified relationship attributes and nested relationship attributes.

    A LoadGroup can be configured for use on a query using ObjectLevelReadQuery.setLoadGroup(LoadGroup) or in the case of JPA users with LOAD_GROUP query hint. Alternatively a FetchGroup could be used with FetchGroup.shouldLoad() set to true and the FetchGroup configured on a query be executed.

    See Also:
    FetchGroup, Serialized Form
    Author:
    ailitchev
    Since:
    Eclipselink 2.1
    • Field Detail

      • isConcurrent

        protected java.lang.Boolean isConcurrent
    • Constructor Detail

      • LoadGroup

        public LoadGroup()
      • LoadGroup

        public LoadGroup​(java.lang.String name)
    • Method Detail

      • getGroup

        public LoadGroup getGroup​(java.lang.String attributeNameOrPath)
        Returns LoadGroup corresponding to the passed (possibly nested) attribute.
        Overrides:
        getGroup in class AttributeGroup
      • addAttribute

        public void addAttribute​(java.lang.String attributeNameOrPath,
                                 CoreAttributeGroup group)
        Description copied from class: CoreAttributeGroup
        Add a basic attribute or nested attribute with each String representing an attribute on the path to what needs to be included in the AttributeGroup.

        Example: group.addAttribute("firstName", group1);
        group.addAttribute("manager.address", group2);
        Note that existing group corresponding to attributeNameOrPath will be overridden with the passed group.

        Overrides:
        addAttribute in class CoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,​ClassDescriptor>
        Parameters:
        attributeNameOrPath - A simple attribute, array or attributes forming a path
        group - - an AttributeGroup to be added.
      • addAttribute

        public void addAttribute​(java.lang.String attributeNameOrPath,
                                 LoadGroup group)
      • getIsConcurrent

        public java.lang.Boolean getIsConcurrent()
        INTERNAL: Return if the load group should load its relationships concurrently.
      • isConcurrent

        public boolean isConcurrent()
        ADVANCED: Return if the load group should load its relationships concurrently. This will use the session's server platform's thread pool. Each of the query results objects relationships will be loaded on a different thread. This can improve performance by processing many queries at once. Concurrent load is only supported when a shared cache is used.
        Overrides:
        isConcurrent in class AttributeGroup
      • setIsConcurrent

        public void setIsConcurrent​(java.lang.Boolean isConcurrent)
        ADVANCED: Set if the load group should load its relationships concurrently. This will use the session's server platform's thread pool. Each of the query results objects relationships will be loaded on a different thread. This can improve performance by processing many queries at once. Concurrent load is only supported when a shared cache is used.