Package org.eclipse.persistence.mappings
Class DirectCollectionMapping
- java.lang.Object
-
- org.eclipse.persistence.core.mappings.CoreMapping<AttributeAccessor,org.eclipse.persistence.internal.sessions.AbstractSession,org.eclipse.persistence.internal.queries.ContainerPolicy,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField>
-
- org.eclipse.persistence.mappings.DatabaseMapping
-
- org.eclipse.persistence.mappings.ForeignReferenceMapping
-
- org.eclipse.persistence.mappings.CollectionMapping
-
- org.eclipse.persistence.mappings.DirectCollectionMapping
-
- All Implemented Interfaces:
Serializable,Cloneable,ContainerMapping,RelationalMapping
- Direct Known Subclasses:
DirectMapMapping
public class DirectCollectionMapping extends CollectionMapping implements RelationalMapping
Purpose: This mapping is used to store a collection of simple types (String, Number, Date, etc.) into a single table. The table must store the value and a foreign key to the source object. A converter can be used if the desired object type and the data type do not match.
- Since:
- TOPLink/Java 1.0 09/18/2009-2.0 Michael O'Brien - 266912: JPA 2.0 Metamodel API (part of the JSR-317 EJB 3.1 Criteria API) add support for passing BasicMap value type to MapAttributeImpl via new attributeClassification field
- Author:
- Sati
- See Also:
Converter,ObjectTypeConverter,TypeConversionConverter,SerializedObjectConverter, Serialized Form
-
-
Nested 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.ForeignReferenceMapping
INNER_JOIN, NONE, OUTER_JOIN, QUERY_BATCH_PARAMETER
-
-
Constructor Summary
Constructors Constructor Description DirectCollectionMapping()PUBLIC: Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAscendingOrdering()PUBLIC: Provide ascending order support for this direct collection mapping.voidaddDescendingOrdering()PUBLIC: Provide descending order support for this direct collection mapping.voidaddOrdering(Expression expression)ADVANCED: Used this method to add custom ordering expressions when fetching the collection.voidaddReferenceKeyField(org.eclipse.persistence.internal.helper.DatabaseField referenceForeignKeyField, org.eclipse.persistence.internal.helper.DatabaseField sourcePrimaryKeyField)PUBLIC: Add the reference key field.voidaddReferenceKeyFieldName(String referenceForeignKeyFieldName, String sourcePrimaryKeyFieldName)PUBLIC: Add the name of the reference key field.voidbuildCopy(Object copy, Object original, CopyGroup group)INTERNAL: Copy of the attribute of the object.ObjectbuildElementClone(Object element, Object parent, org.eclipse.persistence.internal.identitymaps.CacheKey parentCacheKey, Integer refreshCascade, org.eclipse.persistence.internal.sessions.AbstractSession cloningSession, boolean isExisting, boolean isFromSharedCache)INTERNAL: Clone the element, if necessary.ExpressionbuildExpression(Object queryObject, QueryByExamplePolicy policy, Expression expressionBuilder, Map processedObjects, org.eclipse.persistence.internal.sessions.AbstractSession session)INTERNAL: In case Query By Example is used, this method builds and returns an expression that corresponds to a single attribute and it's value.voidcalculateDeferredChanges(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.voidcascadeDiscoverAndPersistUnregisteredNewObjects(Object object, Map newObjects, Map unregisteredExistingObjects, Map visitedObjects, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, Set cascadeErrors)INTERNAL: Cascade discover and persist new objects during commit.voidcascadePerformRemoveIfRequired(Object object, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, Map visitedObjects)INTERNAL: Cascade perform delete through mappings that require the cascadevoidcascadePerformRemovePrivateOwnedObjectFromChangeSetIfRequired(Object object, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, Map visitedObjects)INTERNAL: Cascade perform removal of orphaned private owned objects from the UnitOfWorkChangeSetvoidcascadeRegisterNewIfRequired(Object object, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, Map visitedObjects)INTERNAL: Cascade registerNew for Create through mappings that require the cascadeObjectclone()INTERNAL: The mapping clones itself to create deep copy.voidcollectQueryParameters(Set<org.eclipse.persistence.internal.helper.DatabaseField> cacheFields)INTERNAL: This method is used to store the FK fields that can be cached that correspond to noncacheable mappings the FK field values will be used to re-issue the query when cloning the shared cache entityvoidcompareCollectionsForChange(Object oldCollection, Object newCollection, org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord, org.eclipse.persistence.internal.sessions.AbstractSession session)INTERNAL: This method is used to calculate the differences between two collections.org.eclipse.persistence.internal.sessions.ChangeRecordcompareForChange(Object clone, 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.voidcompareListsForChange(List oldList, List newList, org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord, org.eclipse.persistence.internal.sessions.AbstractSession session)INTERNAL: This method is used to calculate the differences between two Lists.booleancompareObjects(Object firstObject, Object secondObject, org.eclipse.persistence.internal.sessions.AbstractSession session)INTERNAL: Compare the attributes belonging to this mapping for the objects.voidconvertClassNamesToClasses(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.voidfixRealObjectReferences(Object object, Map objectInformation, Map processedObjects, ObjectLevelReadQuery query, DistributedSession session)INTERNAL: At this point, we realize we don't have indirection; so we need to replace the reference object(s) with the corresponding object(s) from the remote session.ClassgetAttributeClassification()PUBLIC: Some databases do not properly support all of the base data types.StringgetAttributeClassificationName()INTERNAL: Return the class name of the attribute type.org.eclipse.persistence.internal.helper.DatabaseFieldgetDirectField()INTERNAL: Return the direct field.StringgetDirectFieldName()PUBLIC: Returns the name of the field name in the reference table.VectorgetFieldsForTranslationInAggregate()INTERNAL: Return source key fields for translation by an AggregateObjectMappingObjectgetFieldValue(Object attributeValue, org.eclipse.persistence.internal.sessions.AbstractSession session)INTERNAL: Convert the attribute value to a field value.HistoryPolicygetHistoryPolicy()PUBLIC: Allow history support on the reference table.ExpressiongetJoinCriteria(org.eclipse.persistence.internal.expressions.ObjectExpression context, Expression base)INTERNAL: Returns the join criteria stored in the mapping selection query.ObjectgetObjectCorrespondingTo(Object object, DistributedSession session, Map objectDescriptors, Map processedObjects, ObjectLevelReadQuery query)INTERNAL: return the object on the client corresponding to the specified object.List<Expression>getOrderByExpressions()PUBLIC: Return the order by expression.List<Expression>getOrderByNormalizedExpressions(Expression base)INTERNAL: Return null if this mapping is used in an order by.ClassgetReferenceClass()INTERNAL: This cannot be used with direct collection mappings.StringgetReferenceClassName()INTERNAL: Returns the reference class name.ClassDescriptorgetReferenceDescriptor()INTERNAL: There is none on direct collection.VectorgetReferenceKeyFieldNames()INTERNAL: Return the reference key field names associated with the mapping.Vector<org.eclipse.persistence.internal.helper.DatabaseField>getReferenceKeyFields()INTERNAL: Return the reference key fields.org.eclipse.persistence.internal.helper.DatabaseTablegetReferenceTable()INTERNAL: Return the direct table.StringgetReferenceTableName()PUBLIC: Returns the name of the reference tableStringgetReferenceTableQualifiedName()PUBLIC: Returns the qualified name of the reference table.DatabaseMappinggetRelationshipPartner()INTERNAL: Return the relationshipPartner mapping for this bi-directional mapping.VectorgetSelectFields()INTERNAL: Returns the set of fields that should be selected to build this mapping's value(s).VectorgetSelectTables()INTERNAL: Returns the table(s) that should be selected to build this mapping's value(s).VectorgetSourceKeyFieldNames()PUBLIC: Return the source key field names associated with the mapping.Vector<org.eclipse.persistence.internal.helper.DatabaseField>getSourceKeyFields()INTERNAL: Return the source key fields.ConvertergetValueConverter()PUBLIC: Return the converter on the mapping.booleanhasNestedIdentityReference()INTERNAL: Indicates whether the mapping (or at least one of its nested mappings, at any nested depth) references an entity.voidinitialize(org.eclipse.persistence.internal.sessions.AbstractSession session)INTERNAL: Initialize and validate the mapping properties.booleanisCandidateForPrivateOwnedRemoval()INTERNAL: DirectCollectionMapping contents should not be considered for addition to the UnitOfWork private owned objects list for removal.booleanisCascadedLockingSupported()INTERNAL Return true if this mapping supports cascaded version optimistic locking.booleanisDirectCollectionMapping()INTERNAL:booleanisElementCollectionMapping()INTERNAL:booleanisJoiningSupported()INTERNAL: Return if this mapping support joining.booleanisLockableMapping()INTERNAL: Return whether this mapping should be traversed when we are lockingbooleanisOwned()INTERNAL:booleanisRelationalMapping()INTERNAL: All relational mappings should implement this method to return true.voiditerateOnElement(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator, Object element)INTERNAL: Iterate on the specified element.voiditerateOnRealAttributeValue(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator, Object realAttributeValue)INTERNAL: Iterate on the attribute value.voidmergeChangesIntoObject(Object target, org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord, 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.voidmergeIntoObject(Object target, boolean isTargetUnInitialized, 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.voidperformDataModificationEvent(Object[] event, org.eclipse.persistence.internal.sessions.AbstractSession session)INTERNAL: Perform the commit event.voidpostCalculateChanges(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.voidpostInsert(WriteObjectQuery query)INTERNAL: Insert the private owned object.voidpostUpdate(WriteObjectQuery writeQuery)INTERNAL: Update private owned part.voidpreDelete(DeleteObjectQuery query)INTERNAL: Delete private owned part.ReadQueryprepareNestedBatchQuery(ObjectLevelReadQuery query)INTERNAL: Clone and prepare the selection query as a nested batch read query.ObjectLevelReadQueryprepareNestedJoins(org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, ObjectBuildingQuery baseQuery, org.eclipse.persistence.internal.sessions.AbstractSession session)INTERNAL: Clone and prepare the joined direct query.voidrecordPrivateOwnedRemovals(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.voidremoteInitialization(DistributedSession session)INTERNAL: Once descriptors are serialized to the remote session.MapreplaceValueHoldersIn(Object object, org.eclipse.persistence.internal.sessions.remote.RemoteSessionController controller)INTERNAL: replace the value holders in the specified reference object(s)voidsetAttributeClassification(Class attributeClassification)PUBLIC: Some databases do not properly support all of the base data types.voidsetAttributeClassificationName(String attributeClassificationName)INTERNAL: Set the name of the class for MW usage.voidsetContainerPolicy(org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy)ADVANCED: Configure the mapping to use a container policy.voidsetCustomDeleteAtIndexQuery(ModifyQuery query)PUBLIC: The default delete by index query for this mapping can be overridden by specifying the new query.voidsetCustomDeleteQuery(ModifyQuery query)PUBLIC: The default delete query for this mapping can be overridden by specifying the new query.voidsetCustomInsertQuery(DataModifyQuery query)PUBLIC: The default insert query for mapping can be overridden by specifying the new query.voidsetCustomUpdateAtIndexQuery(ModifyQuery query)PUBLIC: The default delete by index query for this mapping can be overridden by specifying the new query.voidsetDeleteSQLString(String sqlString)PUBLIC: Set the receiver's delete SQL string.voidsetDirectField(org.eclipse.persistence.internal.helper.DatabaseField field)PUBLIC: Set the direct field in the reference table.voidsetDirectFieldClassification(Class fieldType)ADVANCED: Set the class type of the field value.voidsetDirectFieldClassificationName(String className)ADVANCED: Set the class type of the field value.voidsetDirectFieldName(String fieldName)PUBLIC: Set the direct field name in the reference table.voidsetHistoryPolicy(HistoryPolicy policy)PUBLIC: Support history on the reference table.voidsetInsertSQLString(String sqlString)PUBLIC: Set the receiver's insert SQL string.voidsetReferenceClass(Class referenceClass)INTERNAL: This cannot be used with direct collection mappings.voidsetReferenceClassName(String referenceClassName)INTERNAL: Used by MW.voidsetReferenceKeyFieldName(String fieldName)PUBLIC: Set the name of the reference key field.voidsetReferenceKeyFieldNames(Vector fieldNames)INTERNAL: Set the reference key field names associated with the mapping.voidsetReferenceKeyFields(Vector<org.eclipse.persistence.internal.helper.DatabaseField> aVector)INTERNAL: Set the reference fields.voidsetReferenceTable(org.eclipse.persistence.internal.helper.DatabaseTable table)INTERNAL: Set the reference table.voidsetReferenceTableName(String tableName)PUBLIC: Set the reference table name.voidsetSelectionCriteria(Expression anExpression)PUBLIC: Sets the selection criteria to be used as a where clause to read reference objects.voidsetSessionName(String name)PUBLIC: Set the name of the session to execute the mapping's queries under.voidsetSourceKeyFieldNames(Vector fieldNames)INTERNAL: Set the source key field names associated with the mapping.voidsetSourceKeyFields(Vector<org.eclipse.persistence.internal.helper.DatabaseField> sourceKeyFields)INTERNAL: Set the source fields.voidsetValueConverter(Converter valueConverter)PUBLIC: Set the converter on the mapping.voidsetValueConverterClassName(String valueConverterClassName)PUBLIC: Set the converter class name on the mapping.booleanshouldUseListOrderFieldTableExpression()INTERNAL: Indicates whether getListOrderFieldExpression method should create field expression on table expression.voidsimpleAddToCollectionChangeRecord(Object referenceKey, 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.voidsimpleRemoveFromCollectionChangeRecord(Object referenceKey, 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.voidupdateChangeRecord(Object clone, Object newValue, 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 with the new value.voidupdateCollectionChangeRecord(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.voiduseMapClass(Class concreteClass, String methodName)PUBLIC: It is illegal to use a Map as the container of a DirectCollectionMapping.ObjectvalueFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, ObjectBuildingQuery sourceQuery, org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey, org.eclipse.persistence.internal.sessions.AbstractSession session, boolean isTargetProtected, Boolean[] wasCacheUsed)INTERNAL: Return the value of the reference attribute or a value holder.booleanverifyDelete(Object object, org.eclipse.persistence.internal.sessions.AbstractSession session)INTERNAL: Checks if object is deleted from the database or not.-
Methods inherited from class org.eclipse.persistence.mappings.CollectionMapping
addAggregateOrderBy, addAscendingOrdering, addDescendingOrdering, addOrderBy, buildBackupCloneForPartObject, buildChangeRecord, buildCloneForPartObject, buildContainerClone, buildElementUnitOfWorkClone, buildReferencesPKList, extractResultFromBatchQuery, getContainerPolicy, getListOrderField, getOrderByQueryKeyExpressions, getOrderCorrectionType, getRealCollectionAttributeValueFromObject, getTargetPrimaryKeyFields, hasOrderBy, isAttributeValueInstantiatedOrChanged, isChangeTrackingSupported, isCollectionMapping, isListOrderFieldSupported, isMapKeyObjectRelationship, load, loadAll, mustDeleteReferenceObjectsOneByOne, postDelete, postInitialize, preInsert, preUpdate, setChangeListener, setCustomDeleteAllQuery, setDeleteAllCall, setDeleteAllSQLString, setListOrderField, setListOrderFieldName, setMustDeleteReferenceObjectsOneByOne, setOrderCorrectionType, setUseLazyInstantiationForIndirectCollection, shouldUseLazyInstantiationForIndirectCollection, updateChangeRecordForSelfMerge, useCollectionClass, useCollectionClassName, useListClassName, useMapClass, useMapClassName, useSortedSetClass, useSortedSetClassName, useSortedSetClassName, useTransparentCollection, useTransparentList, useTransparentMap, useTransparentSet, validateBeforeInitialization, valueFromPKList, writeChanges
-
Methods inherited from class org.eclipse.persistence.mappings.ForeignReferenceMapping
addForeignKeyField, addTargetForeignKeyField, buildBackupClone, buildClone, buildCloneFromRow, createCloneValueHolder, dontUseBatchReading, dontUseIndirection, extendPessimisticLockScopeInSourceQuery, fixObjectReferences, getAttributeValueFromObject, getAttributeValueWithClonedValueHolders, getBatchFetchType, getIndirectionPolicy, getJoinFetch, getMappedBy, getPartitioningPolicy, getPartitioningPolicyName, getRealAttributeValueFromAttribute, getRelationshipPartnerAttributeName, getSelectionCriteria, getSelectionQuery, getValueFromRemoteValueHolder, hasCustomSelectionQuery, hasDependency, instantiateAttribute, isAttributeValueFromObjectInstantiated, isAttributeValueFullyBuilt, isAttributeValueInstantiated, isCascadeDetach, isCascadeMerge, isCascadeOnDeleteSetOnDatabase, isCascadePersist, isCascadeRefresh, isCascadeRemove, isForeignReferenceMapping, isInnerJoinFetched, isJoinFetched, isLazy, isOuterJoinFetched, isPrivateOwned, iterate, mergeRemoteValueHolder, preInitialize, privateOwnedRelationship, readFromRowIntoObject, requiresTransientWeavedFields, setBatchFetchType, setCascadeAll, setCascadeDetach, setCascadeMerge, setCascadePersist, setCascadeRefresh, setCascadeRemove, setCustomSelectionQuery, setForceInitializationOfSelectionCriteria, setIndirectionPolicy, setIsCacheable, setIsCascadeOnDeleteSetOnDatabase, setIsPrivateOwned, setJoinFetch, setMappedBy, setPartitioningPolicy, setPartitioningPolicyName, setRealAttributeValueInObject, setRelationshipPartner, setRelationshipPartnerAttributeName, setRequiresTransientWeavedFields, setSelectionCall, setSelectionSQLString, setShouldExtendPessimisticLockScope, setUsesBatchReading, setUsesIndirection, shouldExtendPessimisticLockScope, shouldExtendPessimisticLockScopeInDedicatedQuery, shouldExtendPessimisticLockScopeInSourceQuery, shouldExtendPessimisticLockScopeInTargetQuery, shouldMergeCascadeParts, shouldRefreshCascadeParts, shouldUseBatchReading, trimRowForJoin, trimRowForJoin, useBasicIndirection, useBatchReading, useContainerIndirection, useInnerJoinFetch, useOuterJoinFetch, usesIndirection, useWeavedIndirection
-
Methods inherited from class org.eclipse.persistence.mappings.DatabaseMapping
addUnconvertedProperty, buildObjectJoinExpression, buildObjectJoinExpression, buildShallowOriginalFromRow, derivesId, earlyPreDelete, getAttributeAccessor, getAttributeName, getDerivedIdMapping, getDescriptor, getField, getFieldClassification, getFields, getGetMethodName, getMapsIdValue, getProperties, getProperty, getRealAttributeValueFromObject, getSetMethodName, getUnconvertedProperties, getWeight, hasConstraintDependency, hasInverseConstraintDependency, hasMapsIdValue, hasUnconvertedProperties, isAbstractColumnMapping, isAbstractCompositeCollectionMapping, isAbstractCompositeDirectCollectionMapping, isAbstractCompositeObjectMapping, isAbstractDirectMapping, isAggregateCollectionMapping, isAggregateMapping, isAggregateObjectMapping, isCacheable, isCloningRequired, isDatabaseMapping, isDirectMapMapping, isDirectToFieldMapping, isDirectToXMLTypeMapping, isEISMapping, isInAndOutSopObject, isInOnlySopObject, isInSopObject, isJPAId, isManyToManyMapping, isManyToOneMapping, isMapKeyMapping, isMultitenantPrimaryKeyMapping, isNestedTableMapping, isObjectReferenceMapping, isOneToManyMapping, isOneToOneMapping, isOptional, isOutOnlySopObject, isOutSopObject, isPrimaryKeyMapping, isReadOnly, isReferenceMapping, isStructureMapping, isTransformationMapping, isUnidirectionalOneToManyMapping, isUsingMethodAccess, isVariableOneToOneMapping, isWriteOnly, isXMLMapping, postCalculateChangesOnDeleted, postInitializeSourceAndTargetExpressions, prepareCascadeLockingPolicy, readFromResultSetIntoObject, readOnly, readWrite, rehashFieldDependancies, setAttributeAccessor, setAttributeName, setAttributeValueInObject, setDerivedIdMapping, setDerivesId, setDescriptor, setGetMethodName, setIsInAndOutSopObject, setIsInSopObject, setIsJPAId, setIsLazy, setIsMapKeyMapping, setIsOptional, setIsOutSopObject, setIsPrimaryKeyMapping, setIsReadOnly, setMapsIdValue, setProperties, setProperty, setSetMethodName, setWeight, toString, validateAfterInitialization, valueFromObject, valueFromResultSet, valueFromRow, writeFromAttributeIntoRow, writeFromObjectIntoRow, writeFromObjectIntoRowForShallowInsert, writeFromObjectIntoRowForShallowInsertWithChangeRecord, writeFromObjectIntoRowForUpdate, writeFromObjectIntoRowForUpdateAfterShallowInsert, writeFromObjectIntoRowForUpdateBeforeShallowDelete, writeFromObjectIntoRowForWhereClause, writeFromObjectIntoRowWithChangeRecord, writeInsertFieldsIntoRow, writeUpdateFieldsIntoRow
-
-
-
-
Method Detail
-
addAscendingOrdering
public void addAscendingOrdering()
PUBLIC: Provide ascending order support for this direct collection mapping.
-
addDescendingOrdering
public void addDescendingOrdering()
PUBLIC: Provide descending order support for this direct collection mapping.
-
addOrdering
public void addOrdering(Expression expression)
ADVANCED: Used this method to add custom ordering expressions when fetching the collection. This could be things like expressions using a functions like UPPER or NULLS LAST etc.
-
isRelationalMapping
public boolean isRelationalMapping()
Description copied from class:DatabaseMappingINTERNAL: All relational mappings should implement this method to return true.- Overrides:
isRelationalMappingin classDatabaseMapping
-
getValueConverter
public Converter getValueConverter()
PUBLIC: Return the converter on the mapping. A converter can be used to convert between the direct collection's object value and database value.
-
setValueConverter
public void setValueConverter(Converter valueConverter)
PUBLIC: Set the converter on the mapping. A converter can be used to convert between the direct collection's object value and database value.
-
setValueConverterClassName
public void setValueConverterClassName(String valueConverterClassName)
PUBLIC: Set the converter class name on the mapping. Initialized in convertClassNamesToClasses. A converter can be used to convert between the direct collection's object value and database value.
-
addReferenceKeyField
public void addReferenceKeyField(org.eclipse.persistence.internal.helper.DatabaseField referenceForeignKeyField, org.eclipse.persistence.internal.helper.DatabaseField sourcePrimaryKeyField)PUBLIC: Add the reference key field. This is used for composite reference keys. This is the foreign key field in the direct table referencing the primary key of the source object. Both the reference field and the source field that it references must be provided.
-
addReferenceKeyFieldName
public void addReferenceKeyFieldName(String referenceForeignKeyFieldName, String sourcePrimaryKeyFieldName)
PUBLIC: Add the name of the reference key field. This is used for composite reference keys. This is the foreign key field in the direct table referencing the primary key of the source object. Both the reference field name and the name of the source field that it references must be provided.
-
prepareNestedBatchQuery
public ReadQuery prepareNestedBatchQuery(ObjectLevelReadQuery query)
INTERNAL: Clone and prepare the selection query as a nested batch read query. This is used for nested batch reading.- Overrides:
prepareNestedBatchQueryin classForeignReferenceMapping
-
prepareNestedJoins
public ObjectLevelReadQuery prepareNestedJoins(org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, ObjectBuildingQuery baseQuery, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Clone and prepare the joined direct query. Since direct-collection does not build objects a nest query is not required.- Overrides:
prepareNestedJoinsin classForeignReferenceMapping
-
buildCopy
public void buildCopy(Object copy, Object original, CopyGroup group)
INTERNAL: Copy of the attribute of the object. This is NOT used for unit of work but for templatizing an object.- Overrides:
buildCopyin classCollectionMapping
-
buildElementClone
public Object buildElementClone(Object element, Object parent, org.eclipse.persistence.internal.identitymaps.CacheKey parentCacheKey, Integer refreshCascade, org.eclipse.persistence.internal.sessions.AbstractSession cloningSession, boolean isExisting, boolean isFromSharedCache)
INTERNAL: Clone the element, if necessary. DirectCollections hold on to objects that do not have Descriptors (e.g. int, String). These objects do not need to be cloned, unless they use a converter - they are immutable.- Overrides:
buildElementClonein classCollectionMapping
-
buildExpression
public Expression buildExpression(Object queryObject, QueryByExamplePolicy policy, Expression expressionBuilder, Map processedObjects, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: In case Query By Example is used, this method builds and returns an expression that corresponds to a single attribute and it's value.- Overrides:
buildExpressionin classCollectionMapping
-
cascadePerformRemoveIfRequired
public void cascadePerformRemoveIfRequired(Object object, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, Map visitedObjects)
INTERNAL: Cascade perform delete through mappings that require the cascade- Overrides:
cascadePerformRemoveIfRequiredin classCollectionMapping
-
cascadePerformRemovePrivateOwnedObjectFromChangeSetIfRequired
public void cascadePerformRemovePrivateOwnedObjectFromChangeSetIfRequired(Object object, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, Map visitedObjects)
INTERNAL: Cascade perform removal of orphaned private owned objects from the UnitOfWorkChangeSet- Overrides:
cascadePerformRemovePrivateOwnedObjectFromChangeSetIfRequiredin classCollectionMapping
-
cascadeRegisterNewIfRequired
public void cascadeRegisterNewIfRequired(Object object, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, Map visitedObjects)
INTERNAL: Cascade registerNew for Create through mappings that require the cascade- Overrides:
cascadeRegisterNewIfRequiredin classCollectionMapping
-
cascadeDiscoverAndPersistUnregisteredNewObjects
public void cascadeDiscoverAndPersistUnregisteredNewObjects(Object object, Map newObjects, Map unregisteredExistingObjects, Map visitedObjects, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, Set cascadeErrors)
INTERNAL: Cascade discover and persist new objects during commit.- Overrides:
cascadeDiscoverAndPersistUnregisteredNewObjectsin classCollectionMapping
-
clone
public Object clone()
INTERNAL: The mapping clones itself to create deep copy.- Overrides:
clonein classCollectionMapping
-
compareCollectionsForChange
public void compareCollectionsForChange(Object oldCollection, Object newCollection, org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: This method is used to calculate the differences between two collections.- Overrides:
compareCollectionsForChangein classCollectionMapping
-
compareListsForChange
public void compareListsForChange(List oldList, List newList, org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: This method is used to calculate the differences between two Lists.
-
compareForChange
public org.eclipse.persistence.internal.sessions.ChangeRecord compareForChange(Object clone, 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. Comparisons are made on equality not identity.- Overrides:
compareForChangein classCollectionMapping- Returns:
- prototype.changeset.ChangeRecord
-
compareObjects
public boolean compareObjects(Object firstObject, Object secondObject, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Compare the attributes belonging to this mapping for the objects.- Overrides:
compareObjectsin classCollectionMapping
-
convertClassNamesToClasses
public void convertClassNamesToClasses(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.- Overrides:
convertClassNamesToClassesin classCollectionMapping- Parameters:
classLoader-
-
fixRealObjectReferences
public void fixRealObjectReferences(Object object, Map objectInformation, Map processedObjects, ObjectLevelReadQuery query, DistributedSession session)
INTERNAL: At this point, we realize we don't have indirection; so we need to replace the reference object(s) with the corresponding object(s) from the remote session. The reference objects for a DirectCollectionMapping are primitives, so they do not need to be replaced.- Overrides:
fixRealObjectReferencesin classCollectionMapping
-
getAttributeClassification
public Class getAttributeClassification()
PUBLIC: Some databases do not properly support all of the base data types. For these databases, the base data type must be explicitly specified in the mapping to tell EclipseLink to force the instance variable value to that data type.- Overrides:
getAttributeClassificationin classDatabaseMapping- Since:
- Java Persistence API 2.0
-
getAttributeClassificationName
public String getAttributeClassificationName()
INTERNAL: Return the class name of the attribute type. This is only used by the MW.- Since:
- Java Persistence API 2.0
-
getSelectFields
public Vector getSelectFields()
INTERNAL: Returns the set of fields that should be selected to build this mapping's value(s). This is used by expressions to determine which fields to include in the select clause for non-object expressions.- Overrides:
getSelectFieldsin classDatabaseMapping
-
getSelectTables
public Vector getSelectTables()
INTERNAL: Returns the table(s) that should be selected to build this mapping's value(s). This is used by expressions to determine which tables to include in the from clause for non-object expressions.- Overrides:
getSelectTablesin classDatabaseMapping
-
getDirectField
public org.eclipse.persistence.internal.helper.DatabaseField getDirectField()
INTERNAL: Return the direct field. This is the field in the direct table to store the values.
-
getDirectFieldName
public String getDirectFieldName()
PUBLIC: Returns the name of the field name in the reference table.
-
getJoinCriteria
public Expression getJoinCriteria(org.eclipse.persistence.internal.expressions.ObjectExpression context, Expression base)
INTERNAL: Returns the join criteria stored in the mapping selection query. This criteria is used to read reference objects across the tables from the database.- Overrides:
getJoinCriteriain classCollectionMapping
-
getObjectCorrespondingTo
public Object getObjectCorrespondingTo(Object object, DistributedSession session, Map objectDescriptors, Map processedObjects, ObjectLevelReadQuery query)
INTERNAL: return the object on the client corresponding to the specified object. DirectCollections do not have to worry about maintaining object identity.- Overrides:
getObjectCorrespondingToin classCollectionMapping
-
getOrderByExpressions
public List<Expression> getOrderByExpressions()
PUBLIC: Return the order by expression.
-
getOrderByNormalizedExpressions
public List<Expression> getOrderByNormalizedExpressions(Expression base)
INTERNAL: Return null if this mapping is used in an order by.- Overrides:
getOrderByNormalizedExpressionsin classForeignReferenceMapping
-
getHistoryPolicy
public HistoryPolicy getHistoryPolicy()
PUBLIC: Allow history support on the reference table.
-
getReferenceClass
public Class getReferenceClass()
INTERNAL: This cannot be used with direct collection mappings.- Overrides:
getReferenceClassin classForeignReferenceMapping
-
getReferenceClassName
public String getReferenceClassName()
Description copied from class:ForeignReferenceMappingINTERNAL: Returns the reference class name.- Overrides:
getReferenceClassNamein classForeignReferenceMapping
-
getReferenceDescriptor
public ClassDescriptor getReferenceDescriptor()
INTERNAL: There is none on direct collection.- Overrides:
getReferenceDescriptorin classForeignReferenceMapping
-
getReferenceKeyFieldNames
public Vector getReferenceKeyFieldNames()
INTERNAL: Return the reference key field names associated with the mapping. These are in-order with the sourceKeyFieldNames.
-
getReferenceKeyFields
public Vector<org.eclipse.persistence.internal.helper.DatabaseField> getReferenceKeyFields()
INTERNAL: Return the reference key fields.
-
getReferenceTable
public org.eclipse.persistence.internal.helper.DatabaseTable getReferenceTable()
INTERNAL: Return the direct table. This is the table to store the values.
-
getReferenceTableName
public String getReferenceTableName()
PUBLIC: Returns the name of the reference table
-
getReferenceTableQualifiedName
public String getReferenceTableQualifiedName()
PUBLIC: Returns the qualified name of the reference table.
-
getRelationshipPartner
public DatabaseMapping getRelationshipPartner()
INTERNAL: Return the relationshipPartner mapping for this bi-directional mapping. If the relationshipPartner is null then this is a uni-directional mapping. DirectCollectionMapping can not be part of a bi-directional mapping- Overrides:
getRelationshipPartnerin classForeignReferenceMapping
-
getSourceKeyFieldNames
public Vector getSourceKeyFieldNames()
PUBLIC: Return the source key field names associated with the mapping. These are in-order with the referenceKeyFieldNames.
-
getSourceKeyFields
public Vector<org.eclipse.persistence.internal.helper.DatabaseField> getSourceKeyFields()
INTERNAL: Return the source key fields.
-
hasNestedIdentityReference
public boolean hasNestedIdentityReference()
INTERNAL: Indicates whether the mapping (or at least one of its nested mappings, at any nested depth) references an entity. To return true the mapping (or nested mapping) should be ForeignReferenceMapping with non-null and non-aggregate reference descriptor.- Overrides:
hasNestedIdentityReferencein classForeignReferenceMapping
-
initialize
public void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorExceptionINTERNAL: Initialize and validate the mapping properties.- Overrides:
initializein classCollectionMapping- Throws:
DescriptorException
-
shouldUseListOrderFieldTableExpression
public boolean shouldUseListOrderFieldTableExpression()
INTERNAL: Indicates whether getListOrderFieldExpression method should create field expression on table expression.- Overrides:
shouldUseListOrderFieldTableExpressionin classCollectionMapping
-
isDirectCollectionMapping
public boolean isDirectCollectionMapping()
INTERNAL:- Overrides:
isDirectCollectionMappingin classDatabaseMapping
-
isElementCollectionMapping
public boolean isElementCollectionMapping()
INTERNAL:- Overrides:
isElementCollectionMappingin classDatabaseMapping
-
isJoiningSupported
public boolean isJoiningSupported()
INTERNAL: Return if this mapping support joining.- Overrides:
isJoiningSupportedin classForeignReferenceMapping
-
isLockableMapping
public boolean isLockableMapping()
INTERNAL: Return whether this mapping should be traversed when we are locking- Overrides:
isLockableMappingin classForeignReferenceMapping- Returns:
-
isOwned
public boolean isOwned()
INTERNAL:- Overrides:
isOwnedin classDatabaseMapping
-
iterateOnRealAttributeValue
public void iterateOnRealAttributeValue(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator, Object realAttributeValue)INTERNAL: Iterate on the attribute value. The value holder has already been processed. PERF: Avoid iteration if not required.- Overrides:
iterateOnRealAttributeValuein classCollectionMapping
-
iterateOnElement
public void iterateOnElement(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator, Object element)INTERNAL: Iterate on the specified element.- Overrides:
iterateOnElementin classCollectionMapping
-
mergeChangesIntoObject
public void mergeChangesIntoObject(Object target, org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord, 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. Because this is a collection mapping, values are added to or removed from the collection based on the changeset- Overrides:
mergeChangesIntoObjectin classCollectionMapping
-
mergeIntoObject
public void mergeIntoObject(Object target, boolean isTargetUnInitialized, 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.- Overrides:
mergeIntoObjectin classCollectionMapping
-
performDataModificationEvent
public void performDataModificationEvent(Object[] event, org.eclipse.persistence.internal.sessions.AbstractSession session) throws DatabaseException, DescriptorException
INTERNAL: Perform the commit event. This is used in the uow to delay data modifications.- Overrides:
performDataModificationEventin classDatabaseMapping- Throws:
DatabaseExceptionDescriptorException
-
postCalculateChanges
public 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.- Overrides:
postCalculateChangesin classCollectionMapping
-
postInsert
public void postInsert(WriteObjectQuery query) throws DatabaseException
INTERNAL: Insert the private owned object.- Overrides:
postInsertin classCollectionMapping- Throws:
DatabaseException
-
getFieldValue
public Object getFieldValue(Object attributeValue, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Convert the attribute value to a field value. Process any converter if defined.
-
getFieldsForTranslationInAggregate
public Vector getFieldsForTranslationInAggregate()
INTERNAL: Return source key fields for translation by an AggregateObjectMapping- Overrides:
getFieldsForTranslationInAggregatein classForeignReferenceMapping
-
postUpdate
public void postUpdate(WriteObjectQuery writeQuery) throws DatabaseException
INTERNAL: Update private owned part.- Overrides:
postUpdatein classDatabaseMapping- Throws:
DatabaseException
-
preDelete
public void preDelete(DeleteObjectQuery query) throws DatabaseException
INTERNAL: Delete private owned part. Which is a collection of objects from the reference table.- Overrides:
preDeletein classDatabaseMapping- Throws:
DatabaseException
-
recordPrivateOwnedRemovals
public void recordPrivateOwnedRemovals(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.- Overrides:
recordPrivateOwnedRemovalsin classCollectionMapping
-
remoteInitialization
public void remoteInitialization(DistributedSession session)
INTERNAL: Once descriptors are serialized to the remote session. All its mappings and reference descriptors are traversed. Usually mappings are initialized and serialized reference descriptors are replaced with local descriptors if they already exist on the remote session.- Overrides:
remoteInitializationin classForeignReferenceMapping
-
replaceValueHoldersIn
public Map replaceValueHoldersIn(Object object, org.eclipse.persistence.internal.sessions.remote.RemoteSessionController controller)
INTERNAL: replace the value holders in the specified reference object(s)- Overrides:
replaceValueHoldersInin classCollectionMapping
-
setAttributeClassification
public void setAttributeClassification(Class attributeClassification)
PUBLIC: Some databases do not properly support all of the base data types. For these databases, the base data type must be explicitly specified in the mapping to tell EclipseLink to force the instance variable value to that data type.- Since:
- Java Persistence API 2.0 Migrated from AbstractDirectMapping
-
setAttributeClassificationName
public void setAttributeClassificationName(String attributeClassificationName)
INTERNAL: Set the name of the class for MW usage.- Since:
- Java Persistence API 2.0 Migrated from AbstractDirectMapping
-
setDeleteSQLString
public void setDeleteSQLString(String sqlString)
PUBLIC: Set the receiver's delete SQL string. This allows the user to override the SQL generated by TopLink, with there own SQL or procedure call. The arguments are translated from the fields of the source row, through replacing the field names marked by '#' with the values for those fields. This SQL is responsible for doing the deletion required by the mapping, such as deletion from join table for M-M. Example, 'delete from RESPONS where EMP_ID = #EMP_ID and DESCRIP = #DESCRIP'.
-
setContainerPolicy
public void setContainerPolicy(org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy)
ADVANCED: Configure the mapping to use a container policy. The policy manages the access to the collection.- Specified by:
setContainerPolicyin interfaceContainerMapping- Overrides:
setContainerPolicyin classCollectionMapping
-
setCustomDeleteQuery
public void setCustomDeleteQuery(ModifyQuery query)
PUBLIC: The default delete query for this mapping can be overridden by specifying the new query. This query is responsible for doing the deletion required by the mapping, such as deletion from join table for M-M. The query should delete a specific row from the DirectCollectionTable bases on the DirectField.
-
setCustomDeleteAtIndexQuery
public void setCustomDeleteAtIndexQuery(ModifyQuery query)
PUBLIC: The default delete by index query for this mapping can be overridden by specifying the new query. This query used (only in case listOrderField != null) to delete object with particular orderFieldValue.
-
setCustomInsertQuery
public void setCustomInsertQuery(DataModifyQuery query)
PUBLIC: The default insert query for mapping can be overridden by specifying the new query. This query inserts the row into the direct table.
-
setCustomUpdateAtIndexQuery
public void setCustomUpdateAtIndexQuery(ModifyQuery query)
PUBLIC: The default delete by index query for this mapping can be overridden by specifying the new query. This query used (only in case listOrderField != null) to update orderFieldValue of object with particular orderFieldValue.
-
setDirectField
public void setDirectField(org.eclipse.persistence.internal.helper.DatabaseField field)
PUBLIC: Set the direct field in the reference table. This is the field that the primitive data value is stored in.
-
setDirectFieldClassification
public void setDirectFieldClassification(Class fieldType)
ADVANCED: Set the class type of the field value. This can be used if field value differs from the object value, has specific typing requirements such as usage of java.sql.Blob or NChar. This must be called after the field name has been set.
-
setDirectFieldClassificationName
public void setDirectFieldClassificationName(String className)
ADVANCED: Set the class type of the field value. This can be used if field value differs from the object value, has specific typing requirements such as usage of java.sql.Blob or NChar. This must be called after the field name has been set.
-
setDirectFieldName
public void setDirectFieldName(String fieldName)
PUBLIC: Set the direct field name in the reference table. This is the field that the primitive data value is stored in.
-
setInsertSQLString
public void setInsertSQLString(String sqlString)
PUBLIC: Set the receiver's insert SQL string. This allows the user to override the SQL generated by TopLink, with there own SQL or procedure call. The arguments are translated from the fields of the source row, through replacing the field names marked by '#' with the values for those fields. This is used to insert an entry into the direct table.Example, 'insert into RESPONS (EMP_ID, RES_DESC) values (#EMP_ID, #RES_DESC)'.
-
setReferenceClass
public void setReferenceClass(Class referenceClass)
INTERNAL: This cannot be used with direct collection mappings.- Overrides:
setReferenceClassin classForeignReferenceMapping
-
setReferenceClassName
public void setReferenceClassName(String referenceClassName)
Description copied from class:ForeignReferenceMappingINTERNAL: Used by MW.- Overrides:
setReferenceClassNamein classForeignReferenceMapping
-
setReferenceKeyFieldName
public void setReferenceKeyFieldName(String fieldName)
PUBLIC: Set the name of the reference key field. This is the foreign key field in the direct table referencing the primary key of the source object. This method is used if the reference key consists of only a single field.
-
setReferenceKeyFieldNames
public void setReferenceKeyFieldNames(Vector fieldNames)
INTERNAL: Set the reference key field names associated with the mapping. These must be in-order with the sourceKeyFieldNames.
-
setReferenceKeyFields
public void setReferenceKeyFields(Vector<org.eclipse.persistence.internal.helper.DatabaseField> aVector)
INTERNAL: Set the reference fields.
-
setReferenceTable
public void setReferenceTable(org.eclipse.persistence.internal.helper.DatabaseTable table)
INTERNAL: Set the reference table.
-
setSelectionCriteria
public void setSelectionCriteria(Expression anExpression)
PUBLIC: Sets the selection criteria to be used as a where clause to read reference objects. This criteria is automatically generated by the TopLink if not explicitly specified by the user.- Overrides:
setSelectionCriteriain classForeignReferenceMapping
-
setReferenceTableName
public void setReferenceTableName(String tableName)
PUBLIC: Set the reference table name.
-
setHistoryPolicy
public void setHistoryPolicy(HistoryPolicy policy)
PUBLIC: Support history on the reference table.
-
setSessionName
public void setSessionName(String name)
PUBLIC: Set the name of the session to execute the mapping's queries under. This can be used by the session broker to override the default session to be used for the target class.- Overrides:
setSessionNamein classCollectionMapping
-
setSourceKeyFieldNames
public void setSourceKeyFieldNames(Vector fieldNames)
INTERNAL: Set the source key field names associated with the mapping. These must be in-order with the referenceKeyFieldNames.
-
setSourceKeyFields
public void setSourceKeyFields(Vector<org.eclipse.persistence.internal.helper.DatabaseField> sourceKeyFields)
INTERNAL: Set the source fields.
-
collectQueryParameters
public void collectQueryParameters(Set<org.eclipse.persistence.internal.helper.DatabaseField> cacheFields)
INTERNAL: This method is used to store the FK fields that can be cached that correspond to noncacheable mappings the FK field values will be used to re-issue the query when cloning the shared cache entity- Overrides:
collectQueryParametersin classCollectionMapping
-
calculateDeferredChanges
public 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. If an attribute can not be change tracked it's changes can be detected through this process.- Overrides:
calculateDeferredChangesin classCollectionMapping
-
simpleAddToCollectionChangeRecord
public void simpleAddToCollectionChangeRecord(Object referenceKey, 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.- Overrides:
simpleAddToCollectionChangeRecordin classCollectionMapping
-
simpleRemoveFromCollectionChangeRecord
public void simpleRemoveFromCollectionChangeRecord(Object referenceKey, 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.- Overrides:
simpleRemoveFromCollectionChangeRecordin classCollectionMapping
-
updateChangeRecord
public void updateChangeRecord(Object clone, Object newValue, 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 with the new value. This is used by attribute change tracking. Specifically in a collection mapping this will be called when the customer Set a new collection. In this case we will need to mark the change record with the new and the old versions of the collection. And mark the ObjectChangeSet with the attribute name then when the changes are calculated force a compare on the collections to determine changes.- Overrides:
updateChangeRecordin classCollectionMapping
-
updateCollectionChangeRecord
public 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. This is used by attribute change tracking.- Overrides:
updateCollectionChangeRecordin classCollectionMapping
-
useMapClass
public void useMapClass(Class concreteClass, String methodName)
PUBLIC: It is illegal to use a Map as the container of a DirectCollectionMapping. Only Collection containers are supported for DirectCollectionMappings.- Specified by:
useMapClassin interfaceContainerMapping- Overrides:
useMapClassin classCollectionMapping- See Also:
DirectMapMapping
-
valueFromRow
public Object valueFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, ObjectBuildingQuery sourceQuery, org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey, org.eclipse.persistence.internal.sessions.AbstractSession session, boolean isTargetProtected, Boolean[] wasCacheUsed) throws DatabaseException
INTERNAL: Return the value of the reference attribute or a value holder. Check whether the mapping's attribute should be optimized through batch and joining. Overridden to support flashback/historical queries.- Overrides:
valueFromRowin classForeignReferenceMapping- Throws:
DatabaseException
-
verifyDelete
public boolean verifyDelete(Object object, org.eclipse.persistence.internal.sessions.AbstractSession session) throws DatabaseException
INTERNAL: Checks if object is deleted from the database or not.- Overrides:
verifyDeletein classCollectionMapping- Throws:
DatabaseException
-
isCandidateForPrivateOwnedRemoval
public boolean isCandidateForPrivateOwnedRemoval()
INTERNAL: DirectCollectionMapping contents should not be considered for addition to the UnitOfWork private owned objects list for removal.- Overrides:
isCandidateForPrivateOwnedRemovalin classDatabaseMapping
-
isCascadedLockingSupported
public boolean isCascadedLockingSupported()
INTERNAL Return true if this mapping supports cascaded version optimistic locking.- Overrides:
isCascadedLockingSupportedin classDatabaseMapping
-
-