|
EclipseLink 1.1.4, build 'v20100812-r7860' API Reference | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.persistence.mappings.DatabaseMapping
org.eclipse.persistence.mappings.ForeignReferenceMapping
org.eclipse.persistence.mappings.CollectionMapping
org.eclipse.persistence.mappings.DirectCollectionMapping
org.eclipse.persistence.mappings.DirectMapMapping
public class DirectMapMapping
Mapping for a collection of key-value pairs. The key and value must be simple types (String, Number, Date, etc.) and stored in a single table along with a foreign key to the source object. A converter can be used on the key and value if the desired object types do not match the data types.
Converter
,
ObjectTypeConverter
,
TypeConversionConverter
,
SerializedObjectConverter
,
Serialized FormField Summary | |
---|---|
protected org.eclipse.persistence.internal.helper.DatabaseField |
directKeyField
The direct key field name is converted and stored |
protected Converter |
keyConverter
Allows user defined conversion between the object attribute value and the database value. |
protected java.lang.String |
keyConverterClassName
|
Fields inherited from class org.eclipse.persistence.mappings.DirectCollectionMapping |
---|
changeSetDeleteQuery, Delete, DeleteAll, directField, hasCustomDeleteQuery, hasCustomInsertQuery, historyPolicy, Insert, insertQuery, referenceKeyFields, referenceTable, sourceKeyFields, valueConverter, valueConverterClassName |
Fields inherited from class org.eclipse.persistence.mappings.CollectionMapping |
---|
containerPolicy, deleteAllQuery, hasCustomDeleteAllQuery, hasOrderBy |
Fields inherited from class org.eclipse.persistence.mappings.ForeignReferenceMapping |
---|
cascadeMerge, cascadePersist, cascadeRefresh, cascadeRemove, forceInitializationOfSelectionCriteria, hasCustomSelectionQuery, indirectionPolicy, INNER_JOIN, isPrivateOwned, joinFetch, NONE, OUTER_JOIN, referenceClass, referenceClassName, referenceDescriptor, relationshipPartner, relationshipPartnerAttributeName, requiresTransientWeavedFields, selectionQuery, tempInitSession, usesBatchReading |
Fields inherited from class org.eclipse.persistence.mappings.DatabaseMapping |
---|
attributeAccessor, attributeName, descriptor, fields, isLazy, isOptional, isPrimaryKeyMapping, isReadOnly, isRemotelyInitialized, NO_FIELDS, NO_WEIGHT, properties, weight, WEIGHT_1 |
Constructor Summary | |
---|---|
DirectMapMapping()
DirectMapCollectionMapping constructor |
Method Summary | |
---|---|
void |
addToCollectionChangeRecord(java.lang.Object newKey,
java.lang.Object newValue,
org.eclipse.persistence.internal.sessions.ObjectChangeSet objectChangeSet,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
INTERNAL: Add a new value and its change set to the collection change record. |
java.lang.Object |
buildCloneForPartObject(java.lang.Object attributeValue,
java.lang.Object original,
java.lang.Object clone,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
boolean isExisting)
INTERNAL: Require for cloning, the part must be cloned. |
protected java.lang.Object |
buildKeyClone(java.lang.Object element,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
boolean isExisting)
INTERNAL: Clone the key, if necessary. |
void |
calculateDeferredChanges(org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Used by AttributeLevelChangeTracking to update a changeRecord with calculated changes as apposed to detected changes. |
org.eclipse.persistence.internal.sessions.ChangeRecord |
compareForChange(java.lang.Object clone,
java.lang.Object backUp,
org.eclipse.persistence.internal.sessions.ObjectChangeSet owner,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: This method compares the changes between two direct collections. |
boolean |
compareObjects(java.lang.Object firstObject,
java.lang.Object secondObject,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Compare the attributes belonging to this mapping for the objects. |
void |
convertClassNamesToClasses(java.lang.ClassLoader classLoader)
INTERNAL: Convert all the class-name-based settings in this mapping to actual class-based settings This method is implemented by subclasses as necessary. |
java.lang.Object |
extractResultFromBatchQuery(DatabaseQuery query,
org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
org.eclipse.persistence.internal.sessions.AbstractSession session,
org.eclipse.persistence.internal.sessions.AbstractRecord argumentRow)
INTERNAL: Overwrite super method. |
org.eclipse.persistence.internal.helper.DatabaseField |
getDirectKeyField()
INTERNAL: |
java.lang.Class |
getKeyClass()
PUBLIC: This is a helper method to get the object class from the key converter if it is a TypeConversionConverter. |
Converter |
getKeyConverter()
PUBLIC: Return the converter on the mapping. |
java.lang.Class |
getValueClass()
PUBLIC: This is a helper method to get the object class from the value converter if it is a TypeConversionConverter. |
void |
initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Initialize and validate the mapping properties. |
protected void |
initializeContainerPolicy(org.eclipse.persistence.internal.sessions.AbstractSession session)
Set the key and value fields that are used to build the container from database rows. |
protected void |
initializeDeleteQuery(org.eclipse.persistence.internal.sessions.AbstractSession session)
|
protected void |
initializeDirectKeyField(org.eclipse.persistence.internal.sessions.AbstractSession session)
The field name on the reference table is initialized and cached. |
protected void |
initializeInsertQuery(org.eclipse.persistence.internal.sessions.AbstractSession session)
Initialize insert query. |
protected void |
initializeSelectionStatement(org.eclipse.persistence.internal.sessions.AbstractSession session)
|
boolean |
isDirectMapMapping()
INTERNAL: Related mapping should implement this method to return true. |
void |
mergeChangesIntoObject(java.lang.Object target,
org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord,
java.lang.Object source,
org.eclipse.persistence.internal.sessions.MergeManager mergeManager)
INTERNAL: Merge changes from the source to the target object. |
void |
mergeIntoObject(java.lang.Object target,
boolean isTargetUnInitialized,
java.lang.Object source,
org.eclipse.persistence.internal.sessions.MergeManager mergeManager)
INTERNAL: Merge changes from the source to the target object. |
void |
postInsert(WriteObjectQuery query)
INTERNAL: Insert the private owned object. |
protected void |
postUpdateWithChangeSet(WriteObjectQuery writeQuery)
INTERNAL: Update private owned part. |
void |
removeFromCollectionChangeRecord(java.lang.Object newKey,
java.lang.Object newValue,
org.eclipse.persistence.internal.sessions.ObjectChangeSet objectChangeSet,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
INTERNAL: Remove a value and its change set from the collection change record. |
void |
setDirectKeyField(org.eclipse.persistence.internal.helper.DatabaseField keyField)
INTERNAL: |
void |
setDirectKeyFieldClassification(java.lang.Class fieldType)
ADVANCED: Set the class type of the field value. |
void |
setDirectKeyFieldName(java.lang.String fieldName)
PUBLIC: Set the direct key field name in the reference table. |
void |
setKeyClass(java.lang.Class keyClass)
PUBLIC: This is a helper method to set the key converter to a TypeConversionConverter. |
void |
setKeyConverter(Converter keyConverter)
PUBLIC: Set the converter on the mapping. |
void |
setKeyConverterClassName(java.lang.String keyConverterClassName)
INTERNAL: Set the converter class name on the mapping. |
void |
setValueClass(java.lang.Class valueClass)
PUBLIC: This is a helper method to set the value converter to a TypeConversionConverter. |
void |
simpleAddToCollectionChangeRecord(java.lang.Object referenceKey,
java.lang.Object objectToAdd,
org.eclipse.persistence.internal.sessions.ObjectChangeSet changeSet,
org.eclipse.persistence.internal.sessions.AbstractSession session)
ADVANCED: This method is used to have an object add to a collection once the changeSet is applied The referenceKey parameter should only be used for direct Maps. |
void |
simpleRemoveFromCollectionChangeRecord(java.lang.Object referenceKey,
java.lang.Object objectToRemove,
org.eclipse.persistence.internal.sessions.ObjectChangeSet changeSet,
org.eclipse.persistence.internal.sessions.AbstractSession session)
ADVANCED: This method is used to have an object removed from a collection once the changeSet is applied The referenceKey parameter should only be used for direct Maps. |
void |
updateChangeRecord(java.lang.Object clone,
java.lang.Object newValue,
java.lang.Object oldValue,
org.eclipse.persistence.internal.sessions.ObjectChangeSet objectChangeSet,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
INTERNAL: Either create a new change record or update the change record with the new value. |
void |
useMapClass(java.lang.Class concreteClass)
PUBLIC: Configure the mapping to use an instance of the specified container class to hold the target objects. |
void |
useTransparentMap()
PUBLIC: Configure the mapping to use an instance of the specified container class to hold the target objects. |
protected java.lang.Object |
valueFromRowInternalWithJoin(org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
ObjectBuildingQuery sourceQuery,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
INTERNAL: Return the value of the field from the row or a value holder on the query to obtain the object. |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected org.eclipse.persistence.internal.helper.DatabaseField directKeyField
protected Converter keyConverter
protected java.lang.String keyConverterClassName
Constructor Detail |
---|
public DirectMapMapping()
Method Detail |
---|
public Converter getKeyConverter()
public void setKeyConverter(Converter keyConverter)
public void setKeyConverterClassName(java.lang.String keyConverterClassName)
public void addToCollectionChangeRecord(java.lang.Object newKey, java.lang.Object newValue, org.eclipse.persistence.internal.sessions.ObjectChangeSet objectChangeSet, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow) throws DescriptorException
addToCollectionChangeRecord
in class DirectCollectionMapping
DescriptorException
public java.lang.Object buildCloneForPartObject(java.lang.Object attributeValue, java.lang.Object original, java.lang.Object clone, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, boolean isExisting)
buildCloneForPartObject
in class CollectionMapping
protected java.lang.Object buildKeyClone(java.lang.Object element, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, boolean isExisting)
public void calculateDeferredChanges(org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord, org.eclipse.persistence.internal.sessions.AbstractSession session)
calculateDeferredChanges
in class DirectCollectionMapping
public org.eclipse.persistence.internal.sessions.ChangeRecord compareForChange(java.lang.Object clone, java.lang.Object backUp, org.eclipse.persistence.internal.sessions.ObjectChangeSet owner, org.eclipse.persistence.internal.sessions.AbstractSession session)
compareForChange
in class DirectCollectionMapping
public boolean compareObjects(java.lang.Object firstObject, java.lang.Object secondObject, org.eclipse.persistence.internal.sessions.AbstractSession session)
compareObjects
in class DirectCollectionMapping
public void convertClassNamesToClasses(java.lang.ClassLoader classLoader)
convertClassNamesToClasses
in class DirectCollectionMapping
public org.eclipse.persistence.internal.helper.DatabaseField getDirectKeyField()
public void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
initialize
in class DirectCollectionMapping
DescriptorException
protected void initializeContainerPolicy(org.eclipse.persistence.internal.sessions.AbstractSession session)
protected void initializeDeleteQuery(org.eclipse.persistence.internal.sessions.AbstractSession session)
initializeDeleteQuery
in class DirectCollectionMapping
protected void initializeDirectKeyField(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
DescriptorException
protected void initializeInsertQuery(org.eclipse.persistence.internal.sessions.AbstractSession session)
initializeInsertQuery
in class DirectCollectionMapping
protected void initializeSelectionStatement(org.eclipse.persistence.internal.sessions.AbstractSession session)
initializeSelectionStatement
in class DirectCollectionMapping
public boolean isDirectMapMapping()
isDirectMapMapping
in class DatabaseMapping
public void mergeChangesIntoObject(java.lang.Object target, org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord, java.lang.Object source, org.eclipse.persistence.internal.sessions.MergeManager mergeManager)
mergeChangesIntoObject
in class DirectCollectionMapping
public void mergeIntoObject(java.lang.Object target, boolean isTargetUnInitialized, java.lang.Object source, org.eclipse.persistence.internal.sessions.MergeManager mergeManager)
mergeIntoObject
in class DirectCollectionMapping
public void postInsert(WriteObjectQuery query) throws DatabaseException
postInsert
in class DirectCollectionMapping
DatabaseException
protected void postUpdateWithChangeSet(WriteObjectQuery writeQuery) throws DatabaseException
postUpdateWithChangeSet
in class DirectCollectionMapping
DatabaseException
public void removeFromCollectionChangeRecord(java.lang.Object newKey, java.lang.Object newValue, org.eclipse.persistence.internal.sessions.ObjectChangeSet objectChangeSet, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow) throws DescriptorException
removeFromCollectionChangeRecord
in class DirectCollectionMapping
DescriptorException
public void setDirectKeyField(org.eclipse.persistence.internal.helper.DatabaseField keyField)
public void setDirectKeyFieldClassification(java.lang.Class fieldType)
public void setDirectKeyFieldName(java.lang.String fieldName)
public void updateChangeRecord(java.lang.Object clone, java.lang.Object newValue, java.lang.Object oldValue, org.eclipse.persistence.internal.sessions.ObjectChangeSet objectChangeSet, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow) throws DescriptorException
updateChangeRecord
in class DirectCollectionMapping
DescriptorException
public void useMapClass(java.lang.Class concreteClass)
The default container class is java.util.Hashtable.
The container class must implements (directly or indirectly) the Map interface.
Note: Do not use both useMapClass(Class concreteClass), useTransparentMap(). The last use of one of the two methods will override the previous one.
useMapClass
in class CollectionMapping
public void useTransparentMap()
The container class must implement (directly or indirectly) the Map interface.
Note: Do not use both useMapClass(Class concreteClass), useTransparentMap(). The last use of one of the two methods will override the previous one.
public void setKeyClass(java.lang.Class keyClass)
public java.lang.Class getKeyClass()
public void setValueClass(java.lang.Class valueClass)
public void simpleAddToCollectionChangeRecord(java.lang.Object referenceKey, java.lang.Object objectToAdd, org.eclipse.persistence.internal.sessions.ObjectChangeSet changeSet, org.eclipse.persistence.internal.sessions.AbstractSession session)
simpleAddToCollectionChangeRecord
in class DirectCollectionMapping
public void simpleRemoveFromCollectionChangeRecord(java.lang.Object referenceKey, java.lang.Object objectToRemove, org.eclipse.persistence.internal.sessions.ObjectChangeSet changeSet, org.eclipse.persistence.internal.sessions.AbstractSession session)
simpleRemoveFromCollectionChangeRecord
in class DirectCollectionMapping
public java.lang.Class getValueClass()
public java.lang.Object extractResultFromBatchQuery(DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow, org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord argumentRow)
extractResultFromBatchQuery
in class DirectCollectionMapping
protected java.lang.Object valueFromRowInternalWithJoin(org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, ObjectBuildingQuery sourceQuery, org.eclipse.persistence.internal.sessions.AbstractSession executionSession) throws DatabaseException
valueFromRowInternalWithJoin
in class DirectCollectionMapping
DatabaseException
|
EclipseLink 1.1.4, build 'v20100812-r7860' API Reference | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |