Class FetchRequest
- java.lang.Object
-
- org.datanucleus.store.rdbms.request.Request
-
- org.datanucleus.store.rdbms.request.FetchRequest
-
public class FetchRequest extends Request
Class to retrieve the fields of an object of a specified class from the datastore. If some of those fields are themselves persistent objects then this can optionally retrieve fields of those objects in the same fetch.Any surrogate version stored in this table will be fetched *if* the object being updated doesn't already have a value for it. If the caller wants the surrogate version to be updated then they should nullify the "transactional" version before calling.
-
-
Constructor Summary
Constructors Constructor Description FetchRequest(DatastoreClass classTable, org.datanucleus.FetchPlanForClass fpClass, org.datanucleus.ClassLoaderResolver clr, org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.metadata.AbstractMemberMetaData[] mmds, org.datanucleus.metadata.AbstractMemberMetaData[] mmdsToStore)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
execute(org.datanucleus.state.DNStateManager sm)
Method to execute the request - to be implemented by deriving classes.protected int
processMembersOfClass(SelectStatement sqlStatement, org.datanucleus.FetchPlanForClass fpClass, org.datanucleus.metadata.AbstractMemberMetaData[] mmds, org.datanucleus.metadata.AbstractMemberMetaData[] mmdsToStore, DatastoreClass table, SQLTable sqlTbl, StatementClassMapping mappingDef, Collection fetchCallbacks, org.datanucleus.ClassLoaderResolver clr, List<Integer> memberNumbersToStore)
Method to process the supplied members of the class, adding to the SQLStatement as required.
-
-
-
Constructor Detail
-
FetchRequest
public FetchRequest(DatastoreClass classTable, org.datanucleus.FetchPlanForClass fpClass, org.datanucleus.ClassLoaderResolver clr, org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.metadata.AbstractMemberMetaData[] mmds, org.datanucleus.metadata.AbstractMemberMetaData[] mmdsToStore)
Constructor. Uses the structure of the datastore table to build a basic SELECT query.- Parameters:
classTable
- The Class Table representing the datastore table to retrievefpClass
- FetchPlan for classclr
- ClassLoader resolvercmd
- ClassMetaData of the candidatemmds
- MetaData of the members to fetchmmdsToStore
- MetaData of the members to store
-
-
Method Detail
-
execute
public void execute(org.datanucleus.state.DNStateManager sm)
Description copied from class:Request
Method to execute the request - to be implemented by deriving classes.
-
processMembersOfClass
protected int processMembersOfClass(SelectStatement sqlStatement, org.datanucleus.FetchPlanForClass fpClass, org.datanucleus.metadata.AbstractMemberMetaData[] mmds, org.datanucleus.metadata.AbstractMemberMetaData[] mmdsToStore, DatastoreClass table, SQLTable sqlTbl, StatementClassMapping mappingDef, Collection fetchCallbacks, org.datanucleus.ClassLoaderResolver clr, List<Integer> memberNumbersToStore)
Method to process the supplied members of the class, adding to the SQLStatement as required. Can recurse if some of the requested fields are persistent objects in their own right, so we take the opportunity to retrieve some of their fields.- Parameters:
sqlStatement
- Statement being builtfpClass
- FetchPlan for classmmds
- MetaData for the members to fetchmmdsToStore
- MetaData for the members to storetable
- The table to look for member mappingssqlTbl
- The table in the SQL statement to use for selectsmappingDef
- Mapping definition for the resultfetchCallbacks
- Any additional required callbacks are added hereclr
- ClassLoader resolvermemberNumbersToStore
- Numbers of the members that need storing (populated by this call)- Returns:
- Number of members being selected in the statement
-
-