Class LoadGroup

java.lang.Object
org.eclipse.persistence.core.queries.CoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
org.eclipse.persistence.queries.AttributeGroup
org.eclipse.persistence.queries.LoadGroup
All Implemented Interfaces:
Serializable, 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:
Author:
ailitchev
  • Field Details

    • isConcurrent

      protected Boolean isConcurrent
  • Constructor Details

    • LoadGroup

      public LoadGroup()
    • LoadGroup

      public LoadGroup(String name)
  • Method Details

    • newGroup

      protected LoadGroup newGroup(String name, CoreAttributeGroup parent)
      Description copied from class: AttributeGroup
      Subclass may create different types.
      Overrides:
      newGroup in class AttributeGroup
    • isLoadGroup

      public boolean isLoadGroup()
      Overrides:
      isLoadGroup in class AttributeGroup
    • clone

      public LoadGroup clone()
      Overrides:
      clone in class AttributeGroup
    • getGroup

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

      public void addAttribute(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(String attributeNameOrPath, LoadGroup group)
    • getIsConcurrent

      public 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(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.