public abstract class AbstractDirectMapping extends AbstractColumnMapping implements MapKeyMapping
Converter,
ObjectTypeConverter,
TypeConversionConverter,
SerializedObjectConverter,
ClassInstanceConverter,
Serialized FormDatabaseMapping.WriteType| Modifier and Type | Field and Description |
|---|---|
protected java.lang.Class |
attributeClassification
To specify the conversion type
|
protected java.lang.String |
attributeClassificationName |
protected java.lang.Class |
attributeObjectClassification
PERF: Also store object class of attribute in case of primitive.
|
protected boolean |
bypassDefaultNullValueCheck
PERF: Avoid default null value conversion check if not default null value set in conversion manager.
|
protected java.lang.String |
fieldClassificationClassName |
protected java.lang.Boolean |
isMutable
PERF: Indicates if this mapping's attribute is a simple atomic value and cannot be modified, only replaced.
|
protected org.eclipse.persistence.internal.helper.DatabaseTable |
keyTableForMapKey |
protected java.lang.Object |
nullValue
Support specification of the value to use for null.
|
converter, converterClassName, field, isInsertable, isUpdatableattributeAccessor, attributeName, derivedIdMapping, derivesId, descriptor, fields, isCacheable, isInSopObject, isJPAId, isLazy, isMapKeyMapping, isOptional, isPrimaryKeyMapping, isReadOnly, isRemotelyInitialized, mapsIdValue, NO_FIELDS, NO_WEIGHT, properties, unconvertedProperties, weight, WEIGHT_AGGREGATE, WEIGHT_DIRECT, WEIGHT_TO_ONE, WEIGHT_TRANSFORM| Constructor and Description |
|---|
AbstractDirectMapping()
Default constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addAdditionalFieldsToQuery(ReadQuery selectionQuery,
Expression baseExpression)
INTERNAL:
Used when initializing queries for mappings that use a Map.
|
void |
addFieldsForMapKey(org.eclipse.persistence.internal.sessions.AbstractRecord joinRow)
INTERNAL:
Used when initializing queries for mappings that use a Map
Called when the insert query is being initialized to ensure the fields for the map key are in the insert query.
|
void |
addKeyToDeletedObjectsList(java.lang.Object object,
java.util.Map deletedObjects)
INTERNAL:
For mappings used as MapKeys in MappedKeyContainerPolicy.
|
void |
buildBackupClone(java.lang.Object clone,
java.lang.Object backup,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
INTERNAL:
Clone the attribute from the clone and assign it to the backup.
|
org.eclipse.persistence.internal.sessions.ChangeRecord |
buildChangeRecord(java.lang.Object clone,
org.eclipse.persistence.internal.sessions.ObjectChangeSet owner,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Directly build a change record without comparison
|
void |
buildClone(java.lang.Object original,
org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey,
java.lang.Object clone,
java.lang.Integer refreshCascade,
org.eclipse.persistence.internal.sessions.AbstractSession cloningSession)
INTERNAL:
Clone the attribute from the original and assign it to the clone.
|
void |
buildCloneFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
java.lang.Object clone,
org.eclipse.persistence.internal.identitymaps.CacheKey sharedCacheKey,
ObjectBuildingQuery sourceQuery,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
INTERNAL:
Extract value from the row and set the attribute to this value in the
working copy clone.
|
protected java.lang.Object |
buildCloneValue(java.lang.Object attributeValue,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Clone the actual value represented by this mapping.
|
void |
buildCloneValue(java.lang.Object original,
java.lang.Object clone,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Clone the attribute from the original and assign it to the clone.
|
void |
buildCopy(java.lang.Object copy,
java.lang.Object original,
CopyGroup group)
INTERNAL:
Copy of the attribute of the object.
|
java.lang.Object |
buildElementClone(java.lang.Object attributeValue,
java.lang.Object parent,
org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey,
java.lang.Integer refreshCascade,
org.eclipse.persistence.internal.sessions.AbstractSession cloningSession,
boolean isExisting,
boolean isFromSharedCache)
Build a clone of the given element in a unitOfWork.
|
Expression |
buildExpression(java.lang.Object queryObject,
QueryByExamplePolicy policy,
Expression expressionBuilder,
java.util.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 for a directToField mapping.
|
ReadQuery |
buildSelectionQueryForDirectCollectionKeyMapping(org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy)
INTERNAL:
Certain key mappings favor different types of selection query.
|
void |
buildShallowOriginalFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
java.lang.Object original,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
ObjectBuildingQuery query,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
INTERNAL:
Builds a shallow original object.
|
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,
boolean getAttributeValueFromObject,
java.util.Set cascadeErrors)
INTERNAL:
Cascade discover and persist new objects during commit to the map key.
|
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 |
cascadePerformRemoveIfRequired(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
java.util.Map visitedObjects,
boolean getAttributeValueFromObject)
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.
|
void |
cascadeRegisterNewIfRequired(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
java.util.Map visitedObjects,
boolean getAttributeValueFromObject)
INTERNAL:
Cascade registerNew for Create through mappings that require the cascade.
|
java.lang.Object |
clone()
INTERNAL:
The mapping clones itself to create deep copy.
|
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:
Compare the clone and backup clone values and return a change record if the value changed.
|
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.
|
protected boolean |
compareObjectValues(java.lang.Object firstValue,
java.lang.Object secondValue,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Compare the attribute values.
|
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 |
createMapComponentFromJoinedRow(org.eclipse.persistence.internal.sessions.AbstractRecord dbRow,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManger,
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 and a join query is executed.
|
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.
|
java.util.List<java.lang.Object> |
createMapComponentsFromSerializableKeyInfo(java.lang.Object[] keyInfo,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Create an instance of the Key object from the key information extracted from the map.
|
QueryKey |
createQueryKeyForMapKey()
INTERNAL:
Create a query key that links to the map key.
|
java.lang.Object |
createSerializableMapKeyInfo(java.lang.Object key,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Creates the Array of simple types used to recreate this map.
|
java.lang.Object |
createStubbedMapComponentFromSerializableKeyInfo(java.lang.Object keyInfo,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Create an instance of the Key object from the key information extracted from the map.
|
void |
deleteMapKey(java.lang.Object objectDeleted,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
For mappings used as MapKeys in MappedKeyContainerPolicy, Delete the passed object if necessary.
|
java.util.Map |
extractIdentityFieldsForQuery(java.lang.Object object,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Extract the fields for the Map key from the object to use in a query.
|
Expression |
getAdditionalSelectionCriteriaForMapKey()
INTERNAL:
Return the selection criteria necessary to select the target object when this mapping
is a map key.
|
java.util.List<org.eclipse.persistence.internal.helper.DatabaseTable> |
getAdditionalTablesForJoinQuery()
INTERNAL:
Return any tables that will be required when this mapping is used as part of a join query.
|
java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> |
getAllFieldsForMapKey()
INTERNAL:
Get all the fields for the map key.
|
java.lang.Class |
getAttributeClassification()
PUBLIC:
Some databases do not properly support all of the base data types.
|
java.lang.String |
getAttributeClassificationName()
INTERNAL:
Return the class name of the attribute type.
|
java.lang.Class |
getFieldClassification()
ADVANCED:
Return the class type of the field value.
|
java.lang.Class |
getFieldClassification(org.eclipse.persistence.internal.helper.DatabaseField fieldToClassify)
INTERNAL:
Return the classification for the field contained in the mapping.
|
java.lang.String |
getFieldName()
PUBLIC:
Name of the field this mapping represents.
|
java.lang.Object |
getFieldValue(java.lang.Object attributeValue,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Convert the attribute value to a field value.
|
java.util.Map<org.eclipse.persistence.internal.helper.DatabaseField,org.eclipse.persistence.internal.helper.DatabaseField> |
getForeignKeyFieldsForMapKey()
INTERNAL:
Return a Map of any foreign keys defined within the the MapKey.
|
java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> |
getIdentityFieldsForMapKey()
INTERNAL:
Return the fields that make up the identity of the mapped object.
|
java.lang.Class |
getMapKeyTargetType()
INTERNAL:
Return the class this key mapping maps or the descriptor for it
|
ObjectLevelReadQuery |
getNestedJoinQuery(org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
ObjectLevelReadQuery query,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Return the query that is used when this mapping is part of a joined relationship
This method is used when this mapping is used to map the key in a Map.
|
java.lang.Object |
getNullValue()
PUBLIC:
Allow for the value used for null to be specified.
|
java.lang.Object |
getObjectValue(java.lang.Object fieldValue,
Session session)
INTERNAL:
Allows for subclasses to convert the attribute value.
|
java.lang.Object |
getObjectValueWithoutClassCheck(java.lang.Object fieldValue,
Session session)
INTERNAL:
Same as getObjectValue method, but without checking fieldValue's class.
|
ClassDescriptor |
getReferenceDescriptor()
INTERNAL:
Get the descriptor for this mapping
This method is potentially called when this mapping is used as a map key and
will return null since direct mappings do not have reference descriptors.
|
java.lang.Object |
getTargetVersionOfSourceObject(java.lang.Object object,
java.lang.Object parent,
org.eclipse.persistence.internal.sessions.MergeManager mergeManager,
org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
INTERNAL:
If required, get the targetVersion of the source object from the merge manager.
|
java.lang.Integer |
getWeight()
INTERNAL:
Return the weight of the mapping, used to sort mappings to ensure that
DirectToField Mappings get merged first
|
void |
initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
The mapping is initialized with the given session.
|
org.eclipse.persistence.internal.sessions.ChangeRecord |
internalBuildChangeRecord(java.lang.Object newValue,
java.lang.Object oldValue,
org.eclipse.persistence.internal.sessions.ObjectChangeSet owner)
INTERNAL:
Build a change record.
|
boolean |
isAbstractDirectMapping()
INTERNAL:
|
boolean |
isChangeTrackingSupported(Project project)
INTERNAL:
Return if this mapping supports change tracking.
|
boolean |
isCloningRequired()
INTERNAL:
Return if this mapping requires its attribute value to be cloned.
|
boolean |
isDirectToFieldMapping()
INTERNAL:
|
boolean |
isMutable()
PUBLIC:
Return true if the attribute for this mapping is a simple atomic value that cannot be modified,
only replaced.
|
void |
iterateOnMapKey(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator,
java.lang.Object element)
INTERNAL:
Called when iterating through descriptors to handle iteration on this mapping when it is used as a MapKey.
|
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 |
postInitializeMapKey(org.eclipse.persistence.internal.queries.MappedKeyMapContainerPolicy policy)
INTERNAL:
Making any mapping changes necessary to use a the mapping as a map key after initializing the mapping.
|
void |
preInitialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Initialize the attribute classification.
|
void |
preinitializeMapKey(org.eclipse.persistence.internal.helper.DatabaseTable table)
INTERNAL:
Making any mapping changes necessary to use a the mapping as a map key prior to initializing the mapping.
|
void |
remoteInitialization(DistributedSession session)
INTERNAL:
Once descriptors are serialized to the remote session.
|
boolean |
requiresDataModificationEventsForMapKey()
INTERNAL:
Return whether this mapping requires extra queries to update the rows if it is
used as a key in a map.
|
void |
setAttributeClassification(java.lang.Class attributeClassification)
PUBLIC:
Some databases do not properly support all of the base data types.
|
void |
setAttributeClassificationName(java.lang.String attributeClassificationName)
INTERNAL:
Set the name of the class for MW usage.
|
void |
setFieldClassification(java.lang.Class fieldType)
ADVANCED:
Set the class type of the field value.
|
void |
setFieldClassificationClassName(java.lang.String className)
INTERNAL:
Set the name of the class that will be used for setFieldClassification and deploy time
Used internally by JPA deployment.
|
void |
setFieldType(int jdbcType)
ADVANCED:
Set the JDBC type of the field value.
|
void |
setIsMutable(boolean isMutable)
PUBLIC:
Return true if the attribute for this mapping is a simple atomic value that cannot be modified,
only replaced.
|
void |
setNullValue(java.lang.Object nullValue)
PUBLIC:
Allow for the value used for null to be specified.
|
java.lang.String |
toString()
INTERNAL:
|
java.lang.Object |
unwrapKey(java.lang.Object key,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Allow the key mapping to unwrap the object.
|
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 with the new value.
|
void |
validateBeforeInitialization(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Allow for subclasses to perform validation.
|
java.lang.Object |
valueFromObject(java.lang.Object object,
org.eclipse.persistence.internal.helper.DatabaseField field,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Get the value from the object for this mapping.
|
java.lang.Object |
valueFromResultSet(java.sql.ResultSet resultSet,
ObjectBuildingQuery query,
org.eclipse.persistence.internal.sessions.AbstractSession session,
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor,
java.sql.ResultSetMetaData metaData,
int columnNumber,
org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform)
INTERNAL:
Returns the value for the mapping directly from the result-set.
|
java.lang.Object |
valueFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
ObjectBuildingQuery query,
org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession,
boolean isTargetProtected,
java.lang.Boolean[] wasCacheUsed)
INTERNAL:
Return the mapping's attribute value from the row.
|
java.lang.Object |
wrapKey(java.lang.Object key,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Allow the key mapping to wrap the object.
|
void |
writeFromObjectIntoRow(java.lang.Object object,
org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.sessions.AbstractSession session,
DatabaseMapping.WriteType writeType)
INTERNAL:
Get a value from the object and set that in the respective field of the row.
|
void |
writeFromObjectIntoRowForUpdate(WriteObjectQuery query,
org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow)
INTERNAL:
Write the attribute value from the object to the row for update.
|
void |
writeFromObjectIntoRowWithChangeRecord(org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord,
org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.sessions.AbstractSession session,
DatabaseMapping.WriteType writeType)
INTERNAL:
Get a value from the object and set that in the respective field of the row.
|
void |
writeInsertFieldsIntoRow(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Write fields needed for insert into the template for with null values.
|
void |
writeUpdateFieldsIntoRow(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Write fields needed for update into the template for with null values.
|
protected abstract void |
writeValueIntoRow(org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.helper.DatabaseField field,
java.lang.Object value)
INTERNAL:
|
collectFields, fixObjectReferences, getConverter, getField, hasConverter, isAbstractColumnMapping, isInsertable, isUpdatable, iterate, setConverter, setConverterClassName, setFieldaddUnconvertedProperty, buildBackupCloneForPartObject, buildCloneForPartObject, buildContainerClone, buildObjectJoinExpression, buildObjectJoinExpression, calculateDeferredChanges, cascadeDiscoverAndPersistUnregisteredNewObjects, cascadePerformRemovePrivateOwnedObjectFromChangeSetIfRequired, cloneFields, collectQueryParameters, convertConverterClassNamesToClasses, createCloneValueHolder, derivesId, earlyPreDelete, extractNestedExpressions, fixRealObjectReferences, getAttributeAccessor, getAttributeName, getAttributeValueFromObject, getContainerPolicy, getDerivedIdMapping, getDescriptor, getFields, getGetMethodName, getMapsIdValue, getObjectCorrespondingTo, getOrderByNormalizedExpressions, getProperties, getProperty, getRealAttributeValueFromAttribute, getRealAttributeValueFromObject, getRealCollectionAttributeValueFromObject, getRelationshipPartner, getSelectFields, getSelectTables, getSetMethodName, getUnconvertedProperties, getValueFromRemoteValueHolder, hasConstraintDependency, hasDependency, hasInverseConstraintDependency, hasMapsIdValue, hasNestedIdentityReference, hasRootExpressionThatShouldUseOuterJoin, hasUnconvertedProperties, instantiateAttribute, isAbstractCompositeCollectionMapping, isAbstractCompositeDirectCollectionMapping, isAbstractCompositeObjectMapping, isAggregateCollectionMapping, isAggregateMapping, isAggregateObjectMapping, isAttributeValueFromObjectInstantiated, isCacheable, isCandidateForPrivateOwnedRemoval, isCascadedLockingSupported, isCollectionMapping, isDatabaseMapping, isDirectCollectionMapping, isDirectMapMapping, isDirectToXMLTypeMapping, isEISMapping, isElementCollectionMapping, isForeignReferenceMapping, isInAndOutSopObject, isInOnlySopObject, isInSopObject, isJoiningSupported, isJPAId, isLazy, isLockableMapping, isManyToManyMapping, isManyToOneMapping, isMapKeyMapping, isMultitenantPrimaryKeyMapping, isNestedTableMapping, isObjectReferenceMapping, isOneToManyMapping, isOneToOneMapping, isOptional, isOutOnlySopObject, isOutSopObject, isOwned, isPrimaryKeyMapping, isPrivateOwned, isReadOnly, isReferenceMapping, isRelationalMapping, isRemotelyInitialized, isStructureMapping, isTransformationMapping, isUnidirectionalOneToManyMapping, isUsingMethodAccess, isVariableOneToOneMapping, isWriteOnly, isXMLMapping, iterateOnRealAttributeValue, load, loadAll, performDataModificationEvent, postCalculateChanges, postCalculateChangesOnDeleted, postDelete, postInitialize, postInsert, postUpdate, preDelete, preInsert, prepareCascadeLockingPolicy, preUpdate, readFromResultSetIntoObject, readFromRowIntoObject, readOnly, readWrite, recordPrivateOwnedRemovals, rehashFieldDependancies, remotelyInitialized, replaceValueHoldersIn, setAttributeAccessor, setAttributeName, setAttributeValueInObject, setChangeListener, setDerivedIdMapping, setDerivesId, setDescriptor, setFields, setGetMethodName, setIsCacheable, setIsInAndOutSopObject, setIsInSopObject, setIsJPAId, setIsLazy, setIsMapKeyMapping, setIsOptional, setIsOutSopObject, setIsPrimaryKeyMapping, setIsReadOnly, setMapsIdValue, setProperties, setProperty, setRealAttributeValueInObject, setSetMethodName, setWeight, simpleAddToCollectionChangeRecord, simpleRemoveFromCollectionChangeRecord, updateCollectionChangeRecord, validateAfterInitialization, valueFromRow, verifyDelete, writeFromAttributeIntoRow, writeFromObjectIntoRowForShallowInsert, writeFromObjectIntoRowForShallowInsertWithChangeRecord, writeFromObjectIntoRowForUpdateAfterShallowInsert, writeFromObjectIntoRowForUpdateBeforeShallowDelete, writeFromObjectIntoRowForWhereClauseprotected transient java.lang.Class attributeClassification
protected java.lang.String attributeClassificationName
protected transient java.lang.Class attributeObjectClassification
protected transient java.lang.Object nullValue
protected org.eclipse.persistence.internal.helper.DatabaseTable keyTableForMapKey
protected java.lang.String fieldClassificationClassName
protected boolean bypassDefaultNullValueCheck
protected java.lang.Boolean isMutable
public void addAdditionalFieldsToQuery(ReadQuery selectionQuery, Expression baseExpression)
addAdditionalFieldsToQuery in interface MapKeyMappingpublic void addFieldsForMapKey(org.eclipse.persistence.internal.sessions.AbstractRecord joinRow)
addFieldsForMapKey in interface MapKeyMappingpublic void addKeyToDeletedObjectsList(java.lang.Object object,
java.util.Map deletedObjects)
addKeyToDeletedObjectsList in interface MapKeyMappingpublic boolean isMutable()
public void setIsMutable(boolean isMutable)
public void buildBackupClone(java.lang.Object clone,
java.lang.Object backup,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
buildBackupClone in class DatabaseMappingpublic org.eclipse.persistence.internal.sessions.ChangeRecord buildChangeRecord(java.lang.Object clone,
org.eclipse.persistence.internal.sessions.ObjectChangeSet owner,
org.eclipse.persistence.internal.sessions.AbstractSession session)
buildChangeRecord in class DatabaseMappingpublic void buildClone(java.lang.Object original,
org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey,
java.lang.Object clone,
java.lang.Integer refreshCascade,
org.eclipse.persistence.internal.sessions.AbstractSession cloningSession)
buildClone in class DatabaseMappingpublic void buildCloneFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
java.lang.Object clone,
org.eclipse.persistence.internal.identitymaps.CacheKey sharedCacheKey,
ObjectBuildingQuery sourceQuery,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
buildCloneFromRow in class DatabaseMappingpublic void buildCloneValue(java.lang.Object original,
java.lang.Object clone,
org.eclipse.persistence.internal.sessions.AbstractSession session)
protected java.lang.Object buildCloneValue(java.lang.Object attributeValue,
org.eclipse.persistence.internal.sessions.AbstractSession session)
public void buildCopy(java.lang.Object copy,
java.lang.Object original,
CopyGroup group)
buildCopy in class DatabaseMappingpublic java.lang.Object buildElementClone(java.lang.Object attributeValue,
java.lang.Object parent,
org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey,
java.lang.Integer refreshCascade,
org.eclipse.persistence.internal.sessions.AbstractSession cloningSession,
boolean isExisting,
boolean isFromSharedCache)
buildElementClone in interface MapKeyMappingpublic Expression buildExpression(java.lang.Object queryObject, QueryByExamplePolicy policy, Expression expressionBuilder, java.util.Map processedObjects, org.eclipse.persistence.internal.sessions.AbstractSession session)
buildExpression in class DatabaseMappingpublic ReadQuery buildSelectionQueryForDirectCollectionKeyMapping(org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy)
buildSelectionQueryForDirectCollectionKeyMapping in interface MapKeyMappingpublic 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,
boolean getAttributeValueFromObject,
java.util.Set cascadeErrors)
cascadeDiscoverAndPersistUnregisteredNewObjects in interface MapKeyMappingpublic void cascadePerformRemoveIfRequired(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
java.util.Map visitedObjects,
boolean getAttributeValueFromObject)
cascadePerformRemoveIfRequired in interface MapKeyMappingpublic void cascadePerformRemoveIfRequired(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
java.util.Map visitedObjects)
cascadePerformRemoveIfRequired in class AbstractColumnMappingpublic void cascadeRegisterNewIfRequired(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
java.util.Map visitedObjects,
boolean getAttributeValueFromObject)
cascadeRegisterNewIfRequired in interface MapKeyMappingpublic void cascadeRegisterNewIfRequired(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
java.util.Map visitedObjects)
cascadeRegisterNewIfRequired in class AbstractColumnMappingpublic java.lang.Object clone()
clone in interface MapComponentMappingclone in class AbstractColumnMappingpublic 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 DatabaseMappingpublic void deleteMapKey(java.lang.Object objectDeleted,
org.eclipse.persistence.internal.sessions.AbstractSession session)
deleteMapKey in interface MapKeyMappingpublic boolean compareObjects(java.lang.Object firstObject,
java.lang.Object secondObject,
org.eclipse.persistence.internal.sessions.AbstractSession session)
compareObjects in class DatabaseMappingprotected boolean compareObjectValues(java.lang.Object firstValue,
java.lang.Object secondValue,
org.eclipse.persistence.internal.sessions.AbstractSession session)
public void convertClassNamesToClasses(java.lang.ClassLoader classLoader)
convertClassNamesToClasses in class AbstractColumnMappingpublic java.lang.Object createSerializableMapKeyInfo(java.lang.Object key,
org.eclipse.persistence.internal.sessions.AbstractSession session)
createSerializableMapKeyInfo in interface MapKeyMappingpublic java.util.List<java.lang.Object> createMapComponentsFromSerializableKeyInfo(java.lang.Object[] keyInfo,
org.eclipse.persistence.internal.sessions.AbstractSession session)
createMapComponentsFromSerializableKeyInfo in interface MapKeyMappingpublic java.lang.Object createStubbedMapComponentFromSerializableKeyInfo(java.lang.Object keyInfo,
org.eclipse.persistence.internal.sessions.AbstractSession session)
createStubbedMapComponentFromSerializableKeyInfo in interface MapKeyMappingpublic 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 MapComponentMappingpublic java.lang.Object createMapComponentFromJoinedRow(org.eclipse.persistence.internal.sessions.AbstractRecord dbRow,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManger,
ObjectBuildingQuery query,
org.eclipse.persistence.internal.identitymaps.CacheKey parentCacheKey,
org.eclipse.persistence.internal.sessions.AbstractSession session,
boolean isTargetProtected)
createMapComponentFromJoinedRow in interface MapKeyMappingpublic QueryKey createQueryKeyForMapKey()
createQueryKeyForMapKey in interface MapKeyMappingpublic java.util.Map extractIdentityFieldsForQuery(java.lang.Object object,
org.eclipse.persistence.internal.sessions.AbstractSession session)
extractIdentityFieldsForQuery in interface MapKeyMappingpublic java.util.List<org.eclipse.persistence.internal.helper.DatabaseTable> getAdditionalTablesForJoinQuery()
getAdditionalTablesForJoinQuery in interface MapKeyMappingpublic java.lang.Class getAttributeClassification()
getAttributeClassification in class DatabaseMappingpublic java.lang.String getAttributeClassificationName()
public java.lang.Object getObjectValue(java.lang.Object fieldValue,
Session session)
getObjectValue in class AbstractColumnMappingpublic java.lang.Object getObjectValueWithoutClassCheck(java.lang.Object fieldValue,
Session session)
public boolean isAbstractDirectMapping()
isAbstractDirectMapping in class DatabaseMappingpublic ClassDescriptor getReferenceDescriptor()
getReferenceDescriptor in interface MapKeyMappinggetReferenceDescriptor in class DatabaseMappingpublic java.lang.Class getFieldClassification(org.eclipse.persistence.internal.helper.DatabaseField fieldToClassify)
getFieldClassification in class DatabaseMappingpublic java.lang.Class getFieldClassification()
public void setFieldClassification(java.lang.Class fieldType)
public void setFieldClassificationClassName(java.lang.String className)
className - setFieldClassification(Class fieldType)public void setFieldType(int jdbcType)
public java.lang.String getFieldName()
public java.lang.Object getFieldValue(java.lang.Object attributeValue,
org.eclipse.persistence.internal.sessions.AbstractSession session)
getFieldValue in class AbstractColumnMappingpublic java.util.Map<org.eclipse.persistence.internal.helper.DatabaseField,org.eclipse.persistence.internal.helper.DatabaseField> getForeignKeyFieldsForMapKey()
getForeignKeyFieldsForMapKey in interface MapKeyMappingpublic java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> getIdentityFieldsForMapKey()
getIdentityFieldsForMapKey in interface MapKeyMappingpublic java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> getAllFieldsForMapKey()
getAllFieldsForMapKey in interface MapKeyMappingpublic ObjectLevelReadQuery getNestedJoinQuery(org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, ObjectLevelReadQuery query, org.eclipse.persistence.internal.sessions.AbstractSession session)
getNestedJoinQuery in interface MapKeyMappingpublic java.lang.Object getNullValue()
public Expression getAdditionalSelectionCriteriaForMapKey()
getAdditionalSelectionCriteriaForMapKey in interface MapKeyMappingpublic java.lang.Object getTargetVersionOfSourceObject(java.lang.Object object,
java.lang.Object parent,
org.eclipse.persistence.internal.sessions.MergeManager mergeManager,
org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
getTargetVersionOfSourceObject in interface MapKeyMappingpublic java.lang.Class getMapKeyTargetType()
getMapKeyTargetType in interface MapKeyMappingpublic java.lang.Integer getWeight()
getWeight in class DatabaseMappingpublic void remoteInitialization(DistributedSession session)
remoteInitialization in class DatabaseMappingpublic void preInitialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
throws DescriptorException
preInitialize in class DatabaseMappingDescriptorExceptionpublic void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
throws DescriptorException
initialize in class DatabaseMappingDescriptorExceptionpublic org.eclipse.persistence.internal.sessions.ChangeRecord internalBuildChangeRecord(java.lang.Object newValue,
java.lang.Object oldValue,
org.eclipse.persistence.internal.sessions.ObjectChangeSet owner)
public boolean isDirectToFieldMapping()
isDirectToFieldMapping in class DatabaseMappingpublic void iterateOnMapKey(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator,
java.lang.Object element)
iterateOnMapKey in interface MapKeyMappingpublic 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 DatabaseMappingpublic 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 DatabaseMappingpublic void preinitializeMapKey(org.eclipse.persistence.internal.helper.DatabaseTable table)
throws DescriptorException
preinitializeMapKey in interface MapKeyMappingDescriptorExceptionpublic void postInitializeMapKey(org.eclipse.persistence.internal.queries.MappedKeyMapContainerPolicy policy)
postInitializeMapKey in interface MapKeyMappingpublic boolean requiresDataModificationEventsForMapKey()
requiresDataModificationEventsForMapKey in interface MapKeyMappingpublic void setAttributeClassification(java.lang.Class attributeClassification)
public void setAttributeClassificationName(java.lang.String attributeClassificationName)
public void setNullValue(java.lang.Object nullValue)
public java.lang.String toString()
toString in class AbstractColumnMappingpublic 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)
updateChangeRecord in class DatabaseMappingpublic boolean isChangeTrackingSupported(Project project)
isChangeTrackingSupported in class DatabaseMappingpublic boolean isCloningRequired()
isCloningRequired in class DatabaseMappingpublic java.lang.Object unwrapKey(java.lang.Object key,
org.eclipse.persistence.internal.sessions.AbstractSession session)
unwrapKey in interface MapKeyMappingpublic void validateBeforeInitialization(org.eclipse.persistence.internal.sessions.AbstractSession session)
throws DescriptorException
validateBeforeInitialization in class DatabaseMappingDescriptorExceptionpublic java.lang.Object wrapKey(java.lang.Object key,
org.eclipse.persistence.internal.sessions.AbstractSession session)
wrapKey in interface MapKeyMappingpublic java.lang.Object valueFromObject(java.lang.Object object,
org.eclipse.persistence.internal.helper.DatabaseField field,
org.eclipse.persistence.internal.sessions.AbstractSession session)
throws DescriptorException
valueFromObject in class DatabaseMappingDescriptorExceptionpublic void buildShallowOriginalFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
java.lang.Object original,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
ObjectBuildingQuery query,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
buildShallowOriginalFromRow in class DatabaseMappingpublic java.lang.Object valueFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
ObjectBuildingQuery query,
org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession,
boolean isTargetProtected,
java.lang.Boolean[] wasCacheUsed)
valueFromRow in class DatabaseMappingpublic java.lang.Object valueFromResultSet(java.sql.ResultSet resultSet,
ObjectBuildingQuery query,
org.eclipse.persistence.internal.sessions.AbstractSession session,
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor,
java.sql.ResultSetMetaData metaData,
int columnNumber,
org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform)
throws java.sql.SQLException
valueFromResultSet in class DatabaseMappingjava.sql.SQLExceptionprotected abstract void writeValueIntoRow(org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.helper.DatabaseField field,
java.lang.Object value)
AbstractColumnMappingwriteValueIntoRow in class AbstractColumnMappingpublic void writeFromObjectIntoRowWithChangeRecord(org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord,
org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.sessions.AbstractSession session,
DatabaseMapping.WriteType writeType)
writeFromObjectIntoRowWithChangeRecord in class DatabaseMappingpublic void writeFromObjectIntoRow(java.lang.Object object,
org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.sessions.AbstractSession session,
DatabaseMapping.WriteType writeType)
writeFromObjectIntoRow in class DatabaseMappingpublic void writeFromObjectIntoRowForUpdate(WriteObjectQuery query, org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow)
writeFromObjectIntoRowForUpdate in class DatabaseMappingpublic void writeInsertFieldsIntoRow(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
org.eclipse.persistence.internal.sessions.AbstractSession session)
writeInsertFieldsIntoRow in class DatabaseMappingpublic void writeUpdateFieldsIntoRow(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
org.eclipse.persistence.internal.sessions.AbstractSession session)
writeUpdateFieldsIntoRow in class DatabaseMapping