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.ClassLoaderResolver
ClassLoader resolverprotected DiscriminatorMapping
Mapping for a discriminator (when supporting inherited embedded objects.protected org.datanucleus.metadata.DiscriminatorMetaData
protected org.datanucleus.metadata.AbstractClassMetaData
MetaData for the embedded class.protected org.datanucleus.metadata.EmbeddedMetaData
EmbeddedMetaData for the object being embedded.protected List
<JavaTypeMapping> Mappings of the fields of the embedded PC.protected org.datanucleus.PersistableObjectType
protected String
Type name for the object being embedded.Fields inherited from class org.datanucleus.store.rdbms.mapping.java.SingleFieldMapping
EXTENSION_CHECK_CONSTRAINT_VALUES
Fields inherited from class org.datanucleus.store.rdbms.mapping.java.JavaTypeMapping
absFieldNumber, columnMappings, mmd, referenceMapping, roleForMember, storeMgr, table, type
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addJavaTypeMapping
(JavaTypeMapping mapping) Add a new JavaTypeMapping to manage.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.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 nameint
Accessor 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.AbstractMemberMetaData
void
initialize
(org.datanucleus.metadata.AbstractMemberMetaData mmd, Table table, org.datanucleus.ClassLoaderResolver clr) Initialize this JavaTypeMapping with the given DatastoreAdapter for the given FieldMetaData.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.protected void
Method to prepare a field mapping for use in the datastore.void
setObject
(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] param, Object value) Mutator for the embedded object in the datastore.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.Methods inherited from class org.datanucleus.store.rdbms.mapping.java.SingleFieldMapping
getBoolean, getByte, getChar, getDefaultLength, getDouble, getFloat, getInt, getJavaTypeForColumnMapping, getLong, getShort, getString, getValidValues, setBoolean, setByte, setChar, setDouble, setFloat, setInt, setLong, setShort, setString
Methods inherited from class org.datanucleus.store.rdbms.mapping.java.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:
initialize
in 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:
prepareColumnMapping
in 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:
setObject
in 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:
setObject
in 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:
getObject
in 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:
getObject
in 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:
getJavaType
in classJavaTypeMapping
- Returns:
- The Java type
-
getRealMemberMetaData
public org.datanucleus.metadata.AbstractMemberMetaData getRealMemberMetaData()
-