javax.jdo

## Interface FetchPlan

-     public interface FetchPlan

  Fetch groups are activated using methods on this interface. An instance of this interface can be obtained from `PersistenceManager.getFetchPlan()`, `Extent.getFetchPlan()`, and `Query.getFetchPlan()`. When a `Query` or `Extent` is retrieved from a `PersistenceManager`, its `FetchPlan` is initialized to the same settings as that of the `PersistenceManager`. Subsequent modifications of the `Query` or `Extent`'s `FetchPlan` are not reflected in the `FetchPlan` of the `PersistenceManager`.
  Since:
    2.0
  Version:
    2.0

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `ALL` For use with `addGroup(java.lang.String)`, `removeGroup(java.lang.String)`, and the various `setGroups(java.util.Collection)` calls.
    `static String` | `DEFAULT` For use with `addGroup(java.lang.String)`, `removeGroup(java.lang.String)`, and the various `setGroups(java.util.Collection)` calls.
    `static int` | `DETACH_LOAD_FIELDS` For use with `PersistenceManager.detachCopy(T)` and `setDetachmentOptions(int)`.
    `static int` | `DETACH_UNLOAD_FIELDS` For use with `PersistenceManager.detachCopy(T)` and `setDetachmentOptions(int)`.
    `static int` | `FETCH_SIZE_GREEDY` For use with `setFetchSize(int)`.
    `static int` | `FETCH_SIZE_OPTIMAL` For use with `setFetchSize(int)`.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `FetchPlan` | `addGroup(String fetchGroupName)` Add the fetch group to the set of active fetch groups.
    `FetchPlan` | `clearGroups()` Remove all active groups leaving no active fetch group.
    `int` | `getDetachmentOptions()` Get options used during detachment.
    `Class[]` | `getDetachmentRootClasses()` Get the root classes for DetachAllOnCommit.
    `Collection` | `getDetachmentRoots()` Get the roots for DetachAllOnCommit.
    `int` | `getFetchSize()` Return the fetch size, or `FETCH_SIZE_OPTIMAL` if not set, or `FETCH_SIZE_GREEDY` to fetch all.
    `Set` | `getGroups()` Return an immutable Set containing the names of all active fetch groups.
    `int` | `getMaxFetchDepth()` Return the maximum fetch depth used when fetching instances.
    `FetchPlan` | `removeGroup(String fetchGroupName)` Remove the fetch group from the set active fetch groups.
    `FetchPlan` | `setDetachmentOptions(int options)` Set options to be used during detachment.
    `FetchPlan` | `setDetachmentRootClasses(Class... rootClasses)` Set the root classes for DetachAllOnCommit.
    `FetchPlan` | `setDetachmentRoots(Collection roots)` Set the roots for DetachAllOnCommit.
    `FetchPlan` | `setFetchSize(int fetchSize)` Set the fetch size for large result set support.
    `FetchPlan` | `setGroup(String fetchGroupName)` Set the active fetch groups to the single named fetch group.
    `FetchPlan` | `setGroups(Collection fetchGroupNames)` Set a collection of groups.
    `FetchPlan` | `setGroups(String... fetchGroupNames)` Set a collection of groups.
    `FetchPlan` | `setMaxFetchDepth(int fetchDepth)` Set the maximum fetch depth when fetching.

- - ### Field Detail

    - #### DEFAULT

          static final String DEFAULT

      For use with `addGroup(java.lang.String)`, `removeGroup(java.lang.String)`, and the various `setGroups(java.util.Collection)` calls. Value: `default`.
      Since:
        2.0
      See Also:
        Constant Field Values

    - #### ALL

          static final String ALL

      For use with `addGroup(java.lang.String)`, `removeGroup(java.lang.String)`, and the various `setGroups(java.util.Collection)` calls. Value: `all`.
      Since:
        2.0
      See Also:
        Constant Field Values

    - #### DETACH_UNLOAD_FIELDS

          static final int DETACH_UNLOAD_FIELDS

      For use with `PersistenceManager.detachCopy(T)` and `setDetachmentOptions(int)`. Specifies that fields that are loaded but not in the current fetch plan should be unloaded prior to detachment.
      Since:
        2.0
      See Also:
        Constant Field Values

    - #### DETACH_LOAD_FIELDS

          static final int DETACH_LOAD_FIELDS

      For use with `PersistenceManager.detachCopy(T)` and `setDetachmentOptions(int)`. Specifies that fields that are not loaded but are in the current fetch plan should be loaded prior to detachment.
      Since:
        2.0
      See Also:
        Constant Field Values

    - #### FETCH_SIZE_GREEDY

          static final int FETCH_SIZE_GREEDY

      For use with `setFetchSize(int)`. Value: -1.
      Since:
        2.0
      See Also:
        Constant Field Values

    - #### FETCH_SIZE_OPTIMAL

          static final int FETCH_SIZE_OPTIMAL

      For use with `setFetchSize(int)`. Value: 0.
      Since:
        2.0
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### addGroup

          FetchPlan addGroup(String fetchGroupName)

      Add the fetch group to the set of active fetch groups.
      Parameters:
        `fetchGroupName` - Name of the FetchGroup to add
      Returns:
        the FetchPlan
      Since:
        2.0

    - #### removeGroup

          FetchPlan removeGroup(String fetchGroupName)

      Remove the fetch group from the set active fetch groups.
      Parameters:
        `fetchGroupName` - Name of the FetchGroup to remove
      Returns:
        the FetchPlan
      Since:
        2.0

    - #### clearGroups

          FetchPlan clearGroups()

      Remove all active groups leaving no active fetch group.
      Returns:
        the FetchPlan
      Since:
        2.0

    - #### getGroups

          Set getGroups()

      Return an immutable Set containing the names of all active fetch groups. The Set is a copy of the currently active groups and will not change based on subsequent changes to the groups.
      Returns:
        an immutable Set containing the names of all currently active fetch groups
      Since:
        2.0

    - #### setGroups

          FetchPlan setGroups(Collection fetchGroupNames)

      Set a collection of groups.
      Parameters:
        `fetchGroupNames` - a collection of names of fetch groups
      Returns:
        the FetchPlan
      Since:
        2.0

    - #### setGroups

          FetchPlan setGroups(String... fetchGroupNames)

      Set a collection of groups.
      Parameters:
        `fetchGroupNames` - a String array of names of fetch groups
      Returns:
        the FetchPlan
      Since:
        2.0

    - #### setGroup

          FetchPlan setGroup(String fetchGroupName)

      Set the active fetch groups to the single named fetch group.
      Parameters:
        `fetchGroupName` - the single fetch group
      Returns:
        the FetchPlan
      Since:
        2.0

    - #### setMaxFetchDepth

          FetchPlan setMaxFetchDepth(int fetchDepth)

      Set the maximum fetch depth when fetching. A value of 0 has no meaning and will throw a JDOUserException. A value of -1 means that no limit is placed on fetching. A positive integer will result in that number of references from the initial object to be fetched.
      Parameters:
        `fetchDepth` - the depth
      Returns:
        the FetchPlan
      Since:
        2.0

    - #### getMaxFetchDepth

          int getMaxFetchDepth()

      Return the maximum fetch depth used when fetching instances.
      Returns:
        the maximum fetch depth
      Since:
        2.0

    - #### setDetachmentRoots

          FetchPlan setDetachmentRoots(Collection roots)

      Set the roots for DetachAllOnCommit.
      Parameters:
        `roots` - Collection of the detachment roots.
      Returns:
        This FetchPlan
      Since:
        2.0

    - #### getDetachmentRoots

          Collection getDetachmentRoots()

      Get the roots for DetachAllOnCommit.
      Returns:
        Collection of detachment roots.
      Since:
        2.0

    - #### setDetachmentRootClasses

          FetchPlan setDetachmentRootClasses(Class... rootClasses)

      Set the root classes for DetachAllOnCommit.
      Parameters:
        `rootClasses` - The root classes.
      Returns:
        This FetchPlan
      Since:
        2.0

    - #### getDetachmentRootClasses

          Class[] getDetachmentRootClasses()

      Get the root classes for DetachAllOnCommit.
      Returns:
        The detachment root classes
      Since:
        2.0

    - #### setFetchSize

          FetchPlan setFetchSize(int fetchSize)

      Set the fetch size for large result set support. Use `FETCH_SIZE_OPTIMAL` to unset, and `FETCH_SIZE_GREEDY` to force loading of everything.
      Parameters:
        `fetchSize` - the fetch size
      Returns:
        the FetchPlan
      Since:
        2.0

    - #### getFetchSize

          int getFetchSize()

      Return the fetch size, or `FETCH_SIZE_OPTIMAL` if not set, or `FETCH_SIZE_GREEDY` to fetch all.
      Returns:
        the fetch size
      Since:
        2.0

    - #### setDetachmentOptions

          FetchPlan setDetachmentOptions(int options)

      Set options to be used during detachment. Options are `DETACH_LOAD_FIELDS` and `DETACH_UNLOAD_FIELDS`.
      Parameters:
        `options` - Options for use during detachment.
      Returns:
        This FetchPlan

    - #### getDetachmentOptions

          int getDetachmentOptions()

      Get options used during detachment.
      Returns:
        Options to use during detachment.

Copyright © 2005–2022 The Apache Software Foundation. All rights reserved.