|
EclipseLink 2.2.0, build 'v20110202-r8913' API Reference | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.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 FormNested Class Summary |
---|
Nested classes/interfaces inherited from class org.eclipse.persistence.mappings.DatabaseMapping |
---|
DatabaseMapping.WriteType |
Field Summary |
---|
Fields inherited from class org.eclipse.persistence.mappings.CollectionMapping |
---|
changeOrderTargetQuery, containerPolicy, deleteAllQuery, hasCustomDeleteAllQuery, hasOrderBy, isListOrderFieldSupported, listOrderField, mustDeleteReferenceObjectsOneByOne, orderCorrectionType |
Fields inherited from class org.eclipse.persistence.mappings.DatabaseMapping |
---|
attributeAccessor, attributeName, derivedIdMapping, derivesId, descriptor, fields, isCacheable, isJPAId, isLazy, isMapKeyMapping, isOptional, isPrimaryKeyMapping, isReadOnly, isRemotelyInitialized, mapsIdValue, NO_FIELDS, NO_WEIGHT, properties, weight, WEIGHT_AGGREGATE, WEIGHT_DIRECT, WEIGHT_TO_ONE, WEIGHT_TRANSFORM |
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,
org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey,
java.lang.Object clone,
org.eclipse.persistence.internal.sessions.AbstractSession cloningSession,
boolean isExisting)
INTERNAL: Require for cloning, the part must be cloned. |
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. |
void |
cascadeDiscoverAndPersistUnregisteredNewObjects(java.lang.Object object,
java.util.Map newObjects,
java.util.Map unregisteredExistingObjects,
java.util.Map visitedObjects,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
INTERNAL: Cascade discover and persist new objects during commit. |
void |
cascadePerformRemoveIfRequired(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
java.util.Map visitedObjects)
INTERNAL: Cascade perform delete through mappings that require the cascade |
void |
cascadeRegisterNewIfRequired(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
java.util.Map visitedObjects)
INTERNAL: Cascade registerNew for Create through mappings that require the cascade |
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. |
java.lang.Object |
createMapComponentFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord dbRow,
ObjectBuildingQuery query,
org.eclipse.persistence.internal.identitymaps.CacheKey parentCacheKey,
org.eclipse.persistence.internal.sessions.AbstractSession session,
boolean isTargetProtected)
INTERNAL Called when a DatabaseMapping is used to map the key in a collection. |
protected void |
executeBatchQuery(DatabaseQuery query,
org.eclipse.persistence.internal.identitymaps.CacheKey parentCacheKey,
java.util.Map referenceDataByKey,
org.eclipse.persistence.internal.sessions.AbstractSession session,
org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
INTERNAL: Prepare and execute the batch query and store the results for each source object in a map keyed by the mappings source keys of the source objects. |
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 |
initializeDeleteQuery(org.eclipse.persistence.internal.sessions.AbstractSession session)
|
protected void |
initializeInsertQuery(org.eclipse.persistence.internal.sessions.AbstractSession session)
Initialize insert query. |
protected void |
initializeSelectionStatement(org.eclipse.persistence.internal.sessions.AbstractSession session)
|
protected void |
initOrRebuildSelectQuery()
INTERNAL: Rebuild select query. |
boolean |
isDirectMapMapping()
INTERNAL: Related mapping should implement this method to return true. |
void |
iterateOnElement(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator,
java.lang.Object element)
INTERNAL: Iterate on the specified element. |
void |
iterateOnRealAttributeValue(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator,
java.lang.Object realAttributeValue)
INTERNAL: Iterate on the attribute value. |
void |
mergeChangesIntoObject(java.lang.Object target,
org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord,
java.lang.Object source,
org.eclipse.persistence.internal.sessions.MergeManager mergeManager,
org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
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,
org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
INTERNAL: Merge changes from the source to the target object. |
void |
performDataModificationEvent(java.lang.Object[] event,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Perform the commit event. |
void |
postCalculateChanges(ChangeRecord changeRecord,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
INTERNAL: Overridden by mappings that require additional processing of the change record after the record has been calculated. |
void |
postInsert(WriteObjectQuery query)
INTERNAL: Insert the private owned object. |
protected void |
postUpdateWithChangeSet(WriteObjectQuery writeQuery)
INTERNAL: Update private owned part. |
void |
preDelete(DeleteObjectQuery query)
INTERNAL: Propagate the preDelete event through the container policy if necessary |
void |
recordPrivateOwnedRemovals(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
INTERNAL: Overridden by mappings that require additional processing of the change record after the record has been calculated. |
protected 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 |
setContainerPolicy(org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy)
ADVANCED: Configure the mapping to use a container policy. |
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 |
updateCollectionChangeRecord(CollectionChangeEvent event,
org.eclipse.persistence.internal.sessions.ObjectChangeSet changeSet,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
INTERNAL: Add or removes a new value and its change set to the collection change record based on the event passed in. |
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.identitymaps.CacheKey parentCacheKey,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession,
boolean isTargetProtected)
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 |
Constructor Detail |
---|
public DirectMapMapping()
Method Detail |
---|
public void setContainerPolicy(org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy)
setContainerPolicy
in interface ContainerMapping
setContainerPolicy
in class DirectCollectionMapping
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
DescriptorException
public java.lang.Object buildCloneForPartObject(java.lang.Object attributeValue, java.lang.Object original, org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey, java.lang.Object clone, org.eclipse.persistence.internal.sessions.AbstractSession cloningSession, boolean isExisting)
buildCloneForPartObject
in class CollectionMapping
public void calculateDeferredChanges(org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord, org.eclipse.persistence.internal.sessions.AbstractSession session)
calculateDeferredChanges
in class DirectCollectionMapping
public void cascadeDiscoverAndPersistUnregisteredNewObjects(java.lang.Object object, java.util.Map newObjects, java.util.Map unregisteredExistingObjects, java.util.Map visitedObjects, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
cascadeDiscoverAndPersistUnregisteredNewObjects
in class DirectCollectionMapping
public void cascadePerformRemoveIfRequired(java.lang.Object object, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, java.util.Map visitedObjects)
cascadePerformRemoveIfRequired
in class DirectCollectionMapping
public void cascadeRegisterNewIfRequired(java.lang.Object object, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, java.util.Map visitedObjects)
cascadeRegisterNewIfRequired
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 java.lang.Object createMapComponentFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord dbRow, ObjectBuildingQuery query, org.eclipse.persistence.internal.identitymaps.CacheKey parentCacheKey, org.eclipse.persistence.internal.sessions.AbstractSession session, boolean isTargetProtected)
createMapComponentFromRow
in interface MapComponentMapping
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 initializeDeleteQuery(org.eclipse.persistence.internal.sessions.AbstractSession session)
initializeDeleteQuery
in class DirectCollectionMapping
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 void iterateOnRealAttributeValue(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator, java.lang.Object realAttributeValue)
iterateOnRealAttributeValue
in class DirectCollectionMapping
public void iterateOnElement(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator, java.lang.Object element)
iterateOnElement
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, org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
mergeChangesIntoObject
in class DirectCollectionMapping
public void mergeIntoObject(java.lang.Object target, boolean isTargetUnInitialized, java.lang.Object source, org.eclipse.persistence.internal.sessions.MergeManager mergeManager, org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
mergeIntoObject
in class DirectCollectionMapping
public void performDataModificationEvent(java.lang.Object[] event, org.eclipse.persistence.internal.sessions.AbstractSession session) throws DatabaseException, DescriptorException
performDataModificationEvent
in class DirectCollectionMapping
DatabaseException
DescriptorException
public void postCalculateChanges(ChangeRecord changeRecord, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
postCalculateChanges
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 preDelete(DeleteObjectQuery query) throws DatabaseException
preDelete
in class DirectCollectionMapping
DatabaseException
protected void initOrRebuildSelectQuery()
initOrRebuildSelectQuery
in class DirectCollectionMapping
public void recordPrivateOwnedRemovals(java.lang.Object object, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
recordPrivateOwnedRemovals
in class DirectCollectionMapping
protected 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
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 updateCollectionChangeRecord(CollectionChangeEvent event, org.eclipse.persistence.internal.sessions.ObjectChangeSet changeSet, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
updateCollectionChangeRecord
in class DirectCollectionMapping
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()
protected void executeBatchQuery(DatabaseQuery query, org.eclipse.persistence.internal.identitymaps.CacheKey parentCacheKey, java.util.Map referenceDataByKey, org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow)
executeBatchQuery
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.identitymaps.CacheKey parentCacheKey, org.eclipse.persistence.internal.sessions.AbstractSession executionSession, boolean isTargetProtected) throws DatabaseException
valueFromRowInternalWithJoin
in class DirectCollectionMapping
DatabaseException
|
EclipseLink 2.2.0, build 'v20110202-r8913' API Reference | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |