JDO Interface

FetchGroup


FetchGroup represents a named fetch group for a specific class or interface. A fetch group instance identifies the name of the class or interface, the list of members (fields or properties) to be fetched when the fetch group is active, and the recursion depth for each member.

Fetch groups are updated using methods on this interface. An instance of a class implementing this interface can be obtained from PersistenceManager.getFetchGroup or PersistenceManagerFactory.getFetchGroup.

A FetchGroup can be unscoped or can be in one of two scopes (the PersistenceManager or the PersistenceManagerFactory scope). Unscoped FetchGroups do not affect any behavior. A FetchGroup in PersistenceManager scope hides the corresponding FetchGroup in the PersistenceManagerFactory scope.

Since:
JDO 2.2

Public Methods

FetchGroup addCategory(String categoryName)
Add the members (fields or properties) of the named category to the set of members in this FetchGroup.
This method first resolves the category name to a set of members and then adds the members as if addMembers was called. After this method executes, the category is not remembered.
Return:
the FetchGroup
Throws:
JDOUserException - if the FetchGroup is unmodifiable
Since:
JDO 2.2
FetchGroup addMember(String memberName)
Add the member (field or property) to the set of members in this FetchGroup.
Parameters:
memberName - the name of a member to add to the FetchGroup
Return:
the FetchGroup
Throws:
JDOUserException - if the parameter is not a member of the persistent type
JDOUserException - if the FetchGroup is unmodifiable
Since:
JDO 2.2
FetchGroup addMembers(String... memberNames)
Add the member (field or property) to the set of members in this FetchGroup.
Duplicates are ignored.
Parameters:
memberNames - the names of members to add to the FetchGroup
Return:
the FetchGroup
Throws:
JDOUserException - if any parameter is not a member of the persistent type
JDOUserException - if the FetchGroup is unmodifiable
Since:
JDO 2.2
boolean equals(Object other)
Return whether this instance is equal to the other.
The equals method must compare the class for identity and the fetch group name for equality.
Return:
whether this instance is equal to the other
Since:
JDO 2.2
Return an immutable Set of String containing the names of all members.
The Set is a copy of the currently defined members and will not change based on subsequent changes to the membership in the FetchGroup.
Return:
an immutable Set containing the names of all members in the FetchGroup
Since:
JDO 2.2
String getName()
Get the name of this FetchGroup.
The name is set only in the factory method.
Return:
the name
Since:
JDO 2.2
boolean getPostLoad()
Get the post-load property of this FetchGroup.
Return:
the post-load property
Since:
JDO 2.2
int getRecursionDepth(String memberName)
Get the recursion-depth for this member.
Parameters:
memberName - the name of the field or property
Return:
the recursion-depth for this member
Throws:
JDOUserException - if the member is not in the FetchGroup
Since:
JDO 2.2
Class getType()
Get the persistent type (class or interface) of this FetchGroup.
The persistent type is set only in the factory method(s).
Return:
the persistent type
Since:
JDO 2.2
int hashCode()
Return the hashCode for this instance.
The hash code should combine both the class and fetch group name. The hash codes for two equal instances must be identical.
Return:
the hash code
Since:
JDO 2.2
boolean isUnmodifiable()
Return whether this FetchGroup is unmodifiable.
If so, methods setPostLoad, addMember, removeMember, addMembers, removeMembers, addCategory, and removeCategory will throw JDOUserException.
Return:
whether the FetchGroup is unmodifiable
Since:
JDO 2.2
FetchGroup removeCategory(String categoryName)
Remove the members (fields or properties) of the named category from the set of members in this FetchGroup.
This method first resolves the category name to a set of members and then removes the members as if removeMembers was called. After this method executes, the category is not remembered.
Return:
the FetchGroup
Throws:
JDOUserException - if the FetchGroup is unmodifiable
Since:
JDO 2.2
FetchGroup removeMember(String memberName)
Remove the member (field or property) from the set of members in this FetchGroup.
Return:
the FetchGroup
Throws:
JDOUserException - if the parameter is not a member of the persistent type
JDOUserException - if the FetchGroup is unmodifiable
Since:
JDO 2.2
FetchGroup removeMembers(String... memberNames)
Remove the member (field or property) from the set of members in this FetchGroup.
Duplicates in the parameter list are eliminated before removing them from the membership.
Return:
the FetchGroup
Throws:
JDOUserException - if any parameter is not a member of the persistent type
JDOUserException - if the FetchGroup is unmodifiable
Since:
JDO 2.2
FetchGroup setPostLoad(boolean postLoad)
Set the post-load property of this FetchGroup.
Return:
the FetchGroup
Throws:
JDOUserException - if the FetchGroup is unmodifiable
Since:
JDO 2.2
FetchGroup setRecursionDepth(String memberName, int recursionDepth)
Set the recursion-depth for this member.
The default is 1. A value of 0 means don't fetch the member (as if the member were omitted entirely). A value of -1 means fetch all instances reachable via this member.
Parameters:
memberName - the name of the field or property
recursionDepth - the value for the recursion-depth property
Return:
the FetchGroup
Throws:
JDOUserException - if the member does not exist
JDOUserException - if the FetchGroup is unmodifiable
Since:
JDO 2.2
FetchGroup setUnmodifiable()
Make this FetchGroup unmodifiable.
If already unmodifiable, this method has no effect.
Return:
the FetchGroup
Since:
JDO 2.2

Public Static Fields

For use with addCategory and removeCategory calls.
This category includes all members in the persistent type.

Using this category also sets the fetch-depth for the members in the default fetch group.

Since:
JDO 2.2
For use with addCategory and removeCategory calls.
This category includes members of all primitive and immutable object class types as defined in section 6.4 of the specification, including String, Locale, Currency, BigDecimal, and BigInteger; as well as Date and its jdbc subtypes and Enum types.
Since:
JDO 2.2
For use with addCategory and removeCategory calls.
This category includes members defined in the default fetch group in xml or annotations. Redefining the default fetch group via the API does not affect the members defined by this category.

Using this category also sets the fetch-depth for the members in the default fetch group.

Since:
JDO 2.2
For use with addCategory and removeCategory calls.
This category includes members of all multi-valued types, including Collection, array, and Map types of basic and relationship types.
Since:
JDO 2.2
For use with addCategory and removeCategory calls.
This category includes members of all relationship types.
Since:
JDO 2.2