Class EmbeddedMapping
java.lang.Object
org.datanucleus.store.rdbms.mapping.java.JavaTypeMapping
org.datanucleus.store.rdbms.mapping.java.SingleFieldMapping
org.datanucleus.store.rdbms.mapping.java.EmbeddedMapping
- Direct Known Subclasses:
EmbeddedElementPCMapping, EmbeddedKeyPCMapping, EmbeddedPCMapping, EmbeddedValuePCMapping
Mapping for an embedded PC object.
The PC object can be embedded directly (1-1 relation) or be the element of a collection/array, or be the key/value of a map.
Note that the mmd can be for the override of an embedded member rather than for the basic member itself. This can be the source of problems when nested. Refer to
getRealMemberMetaDatafor the (base) metadata of the member that is embedded.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.datanucleus.ClassLoaderResolverClassLoader resolverprotected DiscriminatorMappingMapping for a discriminator (when supporting inherited embedded objects.protected org.datanucleus.metadata.DiscriminatorMetaDataprotected org.datanucleus.metadata.AbstractClassMetaDataMetaData for the embedded class.protected org.datanucleus.metadata.EmbeddedMetaDataEmbeddedMetaData for the object being embedded.protected List<JavaTypeMapping> Mappings of the fields of the embedded PC.protected org.datanucleus.PersistableObjectTypeprotected StringType name for the object being embedded.Fields inherited from class SingleFieldMapping
EXTENSION_CHECK_CONSTRAINT_VALUESFields inherited from class JavaTypeMapping
absFieldNumber, columnMappings, mmd, referenceMapping, roleForMember, storeMgr, table, type -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddJavaTypeMapping(JavaTypeMapping mapping) Add a new JavaTypeMapping to manage.private voidaddMappingForMember(org.datanucleus.metadata.AbstractClassMetaData embCmd, org.datanucleus.metadata.AbstractMemberMetaData embMmd, List<org.datanucleus.metadata.AbstractMemberMetaData> embmdMmds) Method to add a mapping for the specified member to this mapping.Accessor for the Java type being represented here.getJavaTypeMapping(int i) Accessor for the java type mappingsgetJavaTypeMapping(String fieldName) Accessor for the sub type mapping for a particular field nameintAccessor for the number of java type mappingsAccessor for the embedded object from the result setgetObject(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] param, org.datanucleus.state.DNStateManager ownerSM, int ownerFieldNumber) Accessor for the embedded object from the result setorg.datanucleus.metadata.AbstractMemberMetaDatavoidinitialize(org.datanucleus.metadata.AbstractMemberMetaData mmd, Table table, org.datanucleus.ClassLoaderResolver clr) Initialize this JavaTypeMapping with the given DatastoreAdapter for the given FieldMetaData.voidinitialize(org.datanucleus.metadata.AbstractMemberMetaData mmd, Table table, org.datanucleus.ClassLoaderResolver clr, org.datanucleus.metadata.EmbeddedMetaData emd, String typeName, org.datanucleus.PersistableObjectType objectType) Initialize for the specified member.protected voidMethod to prepare a field mapping for use in the datastore.voidsetObject(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] param, Object value) Mutator for the embedded object in the datastore.voidsetObject(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] param, Object value, org.datanucleus.state.DNStateManager ownerSM, int ownerFieldNumber) Mutator for the embedded object in the datastore.Methods inherited from class SingleFieldMapping
getBoolean, getByte, getChar, getDefaultLength, getDouble, getFloat, getInt, getJavaTypeForColumnMapping, getLong, getShort, getString, getValidValues, setBoolean, setByte, setChar, setDouble, setFloat, setInt, setLong, setShort, setStringMethods inherited from class JavaTypeMapping
addColumnMapping, equals, failureMessage, getAbsoluteFieldNumber, getColumnMapping, getColumnMappings, getColumnMetaDataForMember, getMemberMetaData, getNumberOfColumnMappings, getReferenceMapping, getRoleForMember, getStoreManager, getTable, getType, getValueForColumnMapping, hashCode, hasSimpleDatastoreRepresentation, includeInFetchStatement, includeInInsertStatement, includeInUpdateStatement, initialize, isNullable, isSerialised, performSetPostProcessing, representableAsStringLiteralInStatement, requiresSetPostProcessing, setAbsFieldNumber, setMemberMetaData, setReferenceMapping, setRoleForMember, setTable
-
Field Details
-
discrimMetaData
protected org.datanucleus.metadata.DiscriminatorMetaData discrimMetaData -
discrimMapping
Mapping for a discriminator (when supporting inherited embedded objects. -
javaTypeMappings
Mappings of the fields of the embedded PC. -
clr
protected org.datanucleus.ClassLoaderResolver clrClassLoader resolver -
emd
protected org.datanucleus.metadata.EmbeddedMetaData emdEmbeddedMetaData for the object being embedded. -
typeName
Type name for the object being embedded. -
objectType
protected org.datanucleus.PersistableObjectType objectType -
embCmd
protected org.datanucleus.metadata.AbstractClassMetaData embCmdMetaData for the embedded class.
-
-
Constructor Details
-
EmbeddedMapping
public EmbeddedMapping()
-
-
Method Details
-
initialize
public void initialize(org.datanucleus.metadata.AbstractMemberMetaData mmd, Table table, org.datanucleus.ClassLoaderResolver clr) Initialize this JavaTypeMapping with the given DatastoreAdapter for the given FieldMetaData.- Overrides:
initializein classSingleFieldMapping- Parameters:
mmd- FieldMetaData for the field to be mapped (if any)table- The datastore container storing this mapping (if any)clr- the ClassLoaderResolver- Throws:
org.datanucleus.exceptions.NucleusException- if an error occurs
-
initialize
public void initialize(org.datanucleus.metadata.AbstractMemberMetaData mmd, Table table, org.datanucleus.ClassLoaderResolver clr, org.datanucleus.metadata.EmbeddedMetaData emd, String typeName, org.datanucleus.PersistableObjectType objectType) Initialize for the specified member.- Parameters:
mmd- metadata for the embedded membertable- Table for persisting this fieldclr- The ClassLoaderResolveremd- Embedded MetaData for the object being embeddedtypeName- type of the embedded PC object being storedobjectType- Object type of the PC object being embedded
-
addMappingForMember
private void addMappingForMember(org.datanucleus.metadata.AbstractClassMetaData embCmd, org.datanucleus.metadata.AbstractMemberMetaData embMmd, List<org.datanucleus.metadata.AbstractMemberMetaData> embmdMmds) Method to add a mapping for the specified member to this mapping.- Parameters:
embCmd- Class that the member belongs toembMmd- Member to be addedembmdMmds- Metadata for embedded members in the "embedded" specification (if any)
-
prepareColumnMapping
protected void prepareColumnMapping()Method to prepare a field mapping for use in the datastore. Overridden so it does nothing- Overrides:
prepareColumnMappingin classSingleFieldMapping
-
addJavaTypeMapping
Add a new JavaTypeMapping to manage.- Parameters:
mapping- the JavaTypeMapping
-
getNumberOfJavaTypeMappings
public int getNumberOfJavaTypeMappings()Accessor for the number of java type mappings- Returns:
- Number of java type mappings of the fields of the embedded PC element
-
getJavaTypeMapping
Accessor for the java type mappings- Parameters:
i- the index position of the java type mapping- Returns:
- the java type mapping
-
getJavaTypeMapping
Accessor for the sub type mapping for a particular field name- Parameters:
fieldName- The field name- Returns:
- The type mapping for that field in the embedded object
-
getDiscriminatorMapping
-
setObject
public void setObject(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] param, Object value) Mutator for the embedded object in the datastore.- Overrides:
setObjectin classSingleFieldMapping- Parameters:
ec- execution contextps- The Prepared Statementparam- Param numbers in the PreparedStatement for the fields of this objectvalue- The embedded object to use
-
setObject
public void setObject(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] param, Object value, org.datanucleus.state.DNStateManager ownerSM, int ownerFieldNumber) Mutator for the embedded object in the datastore.- Overrides:
setObjectin classJavaTypeMapping- Parameters:
ec- ExecutionContextps- The Prepared Statementparam- Param numbers in the PreparedStatement for the fields of this objectvalue- The embedded object to useownerSM- StateManager of the owning object containing this embedded objectownerFieldNumber- Field number in the owning object where this is stored
-
getObject
Accessor for the embedded object from the result set- Overrides:
getObjectin classSingleFieldMapping- Parameters:
ec- ExecutionContextrs- The ResultSetparam- Array of param numbers in the ResultSet for the fields of this object- Returns:
- The embedded object
-
getObject
public Object getObject(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] param, org.datanucleus.state.DNStateManager ownerSM, int ownerFieldNumber) Accessor for the embedded object from the result set- Overrides:
getObjectin classJavaTypeMapping- Parameters:
ec- ExecutionContextrs- The ResultSetparam- Array of param numbers in the ResultSet for the fields of this objectownerSM- StateManager of the owning object containing this embedded objectownerFieldNumber- Field number in the owning object where this is stored- Returns:
- The embedded object
-
getJavaType
Accessor for the Java type being represented here.- Specified by:
getJavaTypein classJavaTypeMapping- Returns:
- The Java type
-
getRealMemberMetaData
public org.datanucleus.metadata.AbstractMemberMetaData getRealMemberMetaData()
-