1184 words
javax.jdo.FetchGroup - JDO interface
javax.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.
- When a FetchGroup is obtained via
PersistenceManager.getFetchGroup, it is immediately in scope of itsPersistenceManager. Subsequent modifications of the FetchGroup immediately affectFetchPlans that contain theFetchGroup. - When a FetchGroup is obtained via
PersistenceManagerFactory.getFetchGroup, it is unscoped. - When a FetchGroup is added to the set of active FetchGroups via
PersistenceManagerFactory.addFetchGroups, it is put in scope of thePersistenceManagerFactory. - When a FetchGroup is removed from the set of active FetchGroups via
PersistenceManagerFactory.removeFetchGroups,PersistenceManagerFactory.removeAllFetchGroups, or replaced viaPersistenceManagerFactory.addFetchGroups, it is unscoped.
- Since:
- JDO 2.2
String ALL
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
String BASIC
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
String DEFAULT
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
String MULTIVALUED
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
String RELATIONSHIP
For use with
addCategory and removeCategory calls.
This category includes members of all relationship types.
- Since:
- JDO 2.2
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.- Parameters:
categoryName-
- Returns:
- 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
- Returns:
- the FetchGroup
- Throws:
JDOUserException- if the parameter is not a member of the persistent typeJDOUserException- 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
- Returns:
- the FetchGroup
- Throws:
JDOUserException- if any parameter is not a member of the persistent typeJDOUserException- 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.
- Parameters:
other-
- Returns:
- whether this instance is equal to the other
- Since:
- JDO 2.2
Set getMembers()
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.
- Returns:
- 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.
- Returns:
- the name
- Since:
- JDO 2.2
boolean getPostLoad()
Get the post-load property of this FetchGroup.
- Returns:
- 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
- Returns:
- 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).
- Returns:
- 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.
- Returns:
- 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.- Returns:
- 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.- Parameters:
categoryName-
- Returns:
- 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.
- Parameters:
memberName-
- Returns:
- the FetchGroup
- Throws:
JDOUserException- if the parameter is not a member of the persistent typeJDOUserException- 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.
- Parameters:
memberNames-
- Returns:
- the FetchGroup
- Throws:
JDOUserException- if any parameter is not a member of the persistent typeJDOUserException- if the FetchGroup is unmodifiable
- Since:
- JDO 2.2
FetchGroup setPostLoad(boolean postLoad)
Set the post-load property of this FetchGroup.
- Parameters:
postLoad-
- Returns:
- 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 propertyrecursionDepth- the value for the recursion-depth property
- Returns:
- the FetchGroup
- Throws:
JDOUserException- if the member does not existJDOUserException- if the FetchGroup is unmodifiable
- Since:
- JDO 2.2
Make this FetchGroup unmodifiable. If already unmodifiable, this method
has no effect.
- Returns:
- the FetchGroup
- Since:
- JDO 2.2
This documentation page is derived (with some adjustments) from the JDO 2.2 API
and is available under the terms of the Apache License, v. 2.0.