Class PersistentClassROF<T>
- java.lang.Object
-
- org.datanucleus.store.rdbms.query.AbstractROF<T>
-
- org.datanucleus.store.rdbms.query.PersistentClassROF<T>
-
- Type Parameters:
T- Type of the persistent object that this creates
- All Implemented Interfaces:
ResultObjectFactory<T>
public final class PersistentClassROF<T> extends AbstractROF<T>
Result-object factory that takes a JDBC ResultSet, a results mapping, and creates a persistable object instance for each row in the ResultSet. We use information in the result set to determine the object type; this can be a discriminator column, or can be a special "NucleusType" column defined just for result processing.
-
-
Field Summary
Fields Modifier and Type Field Description protected int[]mappedFieldNumbersprotected StatementClassMappingmappingDefinitionprotected java.lang.Class<T>persistentClassPersistent class that this factory will generate (may be the root class).private java.util.Map<java.lang.String,java.lang.Class>resolvedClassesResolved classes for metadata / discriminator keyed by class names.protected StatementClassMappingresultMappingMapping of the results to members of this class (and sub-objects).protected ResultSetGetterresultSetGetterprotected org.datanucleus.metadata.AbstractClassMetaDatarootCmdMetadata for the (root) persistable candidate class.-
Fields inherited from class org.datanucleus.store.rdbms.query.AbstractROF
ec, fp, ignoreCache, rs, updateAllFields
-
-
Constructor Summary
Constructors Constructor Description PersistentClassROF(org.datanucleus.ExecutionContext ec, java.sql.ResultSet rs, org.datanucleus.FetchPlan fp, StatementClassMapping resultMapping, org.datanucleus.metadata.AbstractClassMetaData acmd, java.lang.Class<T> persistentClass)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private TfindObjectWithIdAndLoadFields(java.lang.Object id, int[] membersToLoad, int[] membersToStore, java.lang.Class<?> pcClass, org.datanucleus.metadata.AbstractClassMetaData cmd, java.lang.Object surrogateVersion)Method to lookup an object for an id, and specify its FieldValues using the ResultSet.TgetObject()Method to convert the current ResultSet row into a persistable Object.java.sql.ResultSetgetResultSet()Accessor for the JDBC ResultSet being processed.-
Methods inherited from class org.datanucleus.store.rdbms.query.AbstractROF
setIgnoreCache, setUpdateAllFields
-
-
-
-
Field Detail
-
rootCmd
protected final org.datanucleus.metadata.AbstractClassMetaData rootCmd
Metadata for the (root) persistable candidate class.
-
persistentClass
protected java.lang.Class<T> persistentClass
Persistent class that this factory will generate (may be the root class).
-
resultMapping
protected StatementClassMapping resultMapping
Mapping of the results to members of this class (and sub-objects).
-
resultSetGetter
protected ResultSetGetter resultSetGetter
-
mappingDefinition
protected StatementClassMapping mappingDefinition
-
mappedFieldNumbers
protected int[] mappedFieldNumbers
-
resolvedClasses
private java.util.Map<java.lang.String,java.lang.Class> resolvedClasses
Resolved classes for metadata / discriminator keyed by class names.
-
-
Constructor Detail
-
PersistentClassROF
public PersistentClassROF(org.datanucleus.ExecutionContext ec, java.sql.ResultSet rs, org.datanucleus.FetchPlan fp, StatementClassMapping resultMapping, org.datanucleus.metadata.AbstractClassMetaData acmd, java.lang.Class<T> persistentClass)Constructor.- Parameters:
ec- ExecutionContextrs- ResultSet being processedfp- FetchPlanresultMapping- Mapping information for the result set and how it maps to the classacmd- MetaData for the (root) candidate classpersistentClass- Class that this factory will create instances of (or subclasses)
-
-
Method Detail
-
getResultSet
public java.sql.ResultSet getResultSet()
Description copied from interface:ResultObjectFactoryAccessor for the JDBC ResultSet being processed.- Specified by:
getResultSetin interfaceResultObjectFactory<T>- Overrides:
getResultSetin classAbstractROF<T>- Returns:
- The ResultSet
-
getObject
public T getObject()
Method to convert the current ResultSet row into a persistable Object.- Returns:
- The persistable object.
-
findObjectWithIdAndLoadFields
private T findObjectWithIdAndLoadFields(java.lang.Object id, int[] membersToLoad, int[] membersToStore, java.lang.Class<?> pcClass, org.datanucleus.metadata.AbstractClassMetaData cmd, java.lang.Object surrogateVersion)
Method to lookup an object for an id, and specify its FieldValues using the ResultSet. Works for all identity types.- Parameters:
id- The identity (DatastoreId, Application id, or SCOID when nondurable)membersToLoad- Absolute numbers of members to loadmembersToStore- Absolute numbers of members to store in StateManager (for later)pcClass- The class of the required object if knowncmd- Metadata for the typesurrogateVersion- The version when the object has a surrogate version field- Returns:
- The persistable object for this id
-
-