public class ReferenceMapping extends ObjectReferenceMapping
Purpose: In an object-relational data model, structures reference each other through "Refs"; not through foreign keys as in the relational data model. TopLink supports using the Ref to reference the target object.
DatabaseMapping.WriteType| Modifier and Type | Field and Description | 
|---|---|
protected org.eclipse.persistence.internal.helper.DatabaseField | 
field
A ref is always stored in a single field. 
 | 
foreignKeyFields, isForeignKeyRelationshipbatchFetchType, cascadeDetach, cascadeMerge, cascadePersist, cascadeRefresh, cascadeRemove, forceInitializationOfSelectionCriteria, hasCustomSelectionQuery, indirectionPolicy, INNER_JOIN, isCascadeOnDeleteSetOnDatabase, isPrivateOwned, joinFetch, mappedBy, NONE, OUTER_JOIN, partitioningPolicy, partitioningPolicyName, QUERY_BATCH_PARAMETER, referenceClass, referenceClassName, referenceDescriptor, relationshipPartner, relationshipPartnerAttributeName, requiresTransientWeavedFields, selectionQuery, tempInitSessionattributeAccessor, 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 | 
|---|
ReferenceMapping()  | 
| Modifier and Type | Method and Description | 
|---|---|
protected java.util.Vector | 
collectFields()
Returns all the aggregate fields. 
 | 
org.eclipse.persistence.internal.helper.DatabaseField | 
getField()
INTERNAL:
 Returns the field which this mapping represents. 
 | 
java.lang.String | 
getFieldName()
PUBLIC:
 Return the name of the field this mapping represents. 
 | 
Expression | 
getJoinCriteria(org.eclipse.persistence.internal.expressions.ObjectExpression context,
               Expression base)
INTERNAL:
 Join criteria is created to read target records (nested table) from the table. 
 | 
boolean | 
hasConstraintDependency()
INTERNAL:
 The returns if the mapping has any constraint dependencies, such as foreign keys and join tables. 
 | 
void | 
initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
 Initialize the mapping. 
 | 
boolean | 
isReferenceMapping()
INTERNAL: 
 | 
boolean | 
isRelationalMapping()
INTERNAL: 
 | 
void | 
postDelete(DeleteObjectQuery query)
INTERNAL:
 Delete privately owned parts 
 | 
void | 
postInsert(WriteObjectQuery query)
INTERNAL:
 Insert privately owned parts 
 | 
void | 
postUpdate(WriteObjectQuery query)
INTERNAL:
 Update privately owned parts 
 | 
void | 
preDelete(DeleteObjectQuery query)
INTERNAL:
 Delete privately owned parts 
 | 
void | 
preInsert(WriteObjectQuery query)
INTERNAL:
 Insert privately owned parts 
 | 
void | 
preUpdate(WriteObjectQuery query)
INTERNAL:
 Update privately owned parts 
 | 
protected void | 
setField(org.eclipse.persistence.internal.helper.DatabaseField field)
Set the field in the mapping. 
 | 
void | 
setFieldName(java.lang.String fieldName)
PUBLIC:
 Set the field name in the mapping. 
 | 
void | 
setReferenceClass(java.lang.Class referenceClass)
PUBLIC:
 This is a reference class whose instances this mapping will store in the domain objects. 
 | 
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 value of the field from the row or a value holder on the query to obtain the object. 
 | 
void | 
writeFromObjectIntoRow(java.lang.Object object,
                      org.eclipse.persistence.internal.sessions.AbstractRecord record,
                      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 | 
writeFromObjectIntoRowForShallowInsert(java.lang.Object object,
                                      org.eclipse.persistence.internal.sessions.AbstractRecord record,
                                      org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
 This row is built for shallow insert which happens in case of bidirectional inserts. 
 | 
void | 
writeFromObjectIntoRowForShallowInsertWithChangeRecord(org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord,
                                                      org.eclipse.persistence.internal.sessions.AbstractRecord record,
                                                      org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
 This row is built for shallow insert which happens in case of bidirectional inserts. 
 | 
void | 
writeFromObjectIntoRowForUpdateAfterShallowInsert(java.lang.Object object,
                                                 org.eclipse.persistence.internal.sessions.AbstractRecord record,
                                                 org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                 org.eclipse.persistence.internal.helper.DatabaseTable table)
INTERNAL:
 This row is built for update after shallow insert which happens in case of bidirectional inserts. 
 | 
void | 
writeFromObjectIntoRowInternal(java.lang.Object object,
                              org.eclipse.persistence.internal.sessions.AbstractRecord record,
                              org.eclipse.persistence.internal.sessions.AbstractSession session,
                              boolean shouldIgnoreNull)
INTERNAL:
 Get a value from the object and set that in the respective field of the row. 
 | 
void | 
writeFromObjectIntoRowWithChangeRecord(org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord,
                                      org.eclipse.persistence.internal.sessions.AbstractRecord record,
                                      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 record,
                        org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
 Write fields needed for insert into the template for with null values. 
 | 
buildBackupCloneForPartObject, buildChangeRecord, buildCloneForPartObject, buildCopy, buildExpression, buildReferencesPKList, buildTargetInterfaces, buildUnitofWorkCloneForPartObject, cascadeDiscoverAndPersistUnregisteredNewObjects, cascadeDiscoverAndPersistUnregisteredNewObjects, cascadePerformRemoveIfRequired, cascadePerformRemoveIfRequired, cascadePerformRemovePrivateOwnedObjectFromChangeSetIfRequired, cascadeRegisterNewIfRequired, cascadeRegisterNewIfRequired, collectQueryParameters, compareForChange, compareObjectsWithoutPrivateOwned, compareObjectsWithPrivateOwned, createCloneValueHolder, earlyPreDelete, extractPrimaryKeyRowForSourceObject, extractPrimaryKeysForReferenceObject, extractPrimaryKeysForReferenceObjectFromRow, extractPrimaryKeysFromRealReferenceObject, fixRealObjectReferences, getDescriptorForTarget, getForeignKeyFields, getPrimaryKeyForObject, getRealAttributeValueFromAttribute, hasRelationTableMechanism, insert, internalBuildChangeRecord, isChangeTrackingSupported, isForeignKeyRelationship, isObjectReferenceMapping, iterateOnRealAttributeValue, loadAll, mergeChangesIntoObject, mergeIntoObject, postCalculateChanges, preInitialize, readPrivateOwnedForObject, recordPrivateOwnedRemovals, setForeignKeyFields, setIsForeignKeyRelationship, setNewValueInChangeRecord, update, updateChangeRecord, updateChangeRecordForSelfMerge, useProxyIndirection, useProxyIndirection, useProxyIndirection, valueFromPKList, verifyDelete, writeFromObjectIntoRowForUpdate, writeFromObjectIntoRowForWhereClauseaddForeignKeyField, addTargetForeignKeyField, batchedValueFromRow, buildBackupClone, buildBatchCriteria, buildClone, buildCloneFromRow, checkCacheForBatchKey, clone, compareObjects, convertClassNamesToClasses, dontDoMerge, dontUseBatchReading, dontUseIndirection, executeBatchQuery, extendPessimisticLockScopeInSourceQuery, extendPessimisticLockScopeInTargetQuery, extractBatchKeyFromRow, extractResultFromBatchQuery, fixObjectReferences, getAttributeValueFromObject, getAttributeValueWithClonedValueHolders, getBatchFetchType, getExtendPessimisticLockScopeDedicatedQuery, getFieldsForTranslationInAggregate, getIndirectionPolicy, getJoinFetch, getMappedBy, getObjectCorrespondingTo, getOrderByNormalizedExpressions, getPartitioningPolicy, getPartitioningPolicyName, getReferenceClass, getReferenceClassName, getReferenceDescriptor, getRelationshipPartner, getRelationshipPartnerAttributeName, getSelectionCriteria, getSelectionQuery, getTempSession, getValueFromRemoteValueHolder, hasCustomSelectionQuery, hasDependency, hasNestedIdentityReference, initializeReferenceDescriptor, initializeSelectionQuery, instantiateAttribute, isAttributeValueFromObjectInstantiated, isAttributeValueFullyBuilt, isAttributeValueInstantiated, isCascadeDetach, isCascadeMerge, isCascadeOnDeleteSetOnDatabase, isCascadePersist, isCascadeRefresh, isCascadeRemove, isExtendingPessimisticLockScope, isForeignReferenceMapping, isInnerJoinFetched, isJoinFetched, isJoiningSupported, isLazy, isLockableMapping, isOuterJoinFetched, isPrivateOwned, iterate, load, mergeRemoteValueHolder, postPrepareNestedBatchQuery, prepareHistoricalQuery, prepareNestedBatchQuery, prepareNestedJoinQueryClone, prepareNestedJoins, privateOwnedRelationship, readFromRowIntoObject, remoteInitialization, replaceValueHoldersIn, requiresTransientWeavedFields, setBatchFetchType, setCascadeAll, setCascadeDetach, setCascadeMerge, setCascadePersist, setCascadeRefresh, setCascadeRemove, setCustomSelectionQuery, setForceInitializationOfSelectionCriteria, setHasCustomSelectionQuery, setIndirectionPolicy, setIsCacheable, setIsCascadeOnDeleteSetOnDatabase, setIsPrivateOwned, setJoinFetch, setMappedBy, setPartitioningPolicy, setPartitioningPolicyName, setRealAttributeValueInObject, setReferenceClassName, setReferenceDescriptor, setRelationshipPartner, setRelationshipPartnerAttributeName, setRequiresTransientWeavedFields, setSelectionCall, setSelectionCriteria, setSelectionQuery, setSelectionSQLString, setShouldExtendPessimisticLockScope, setTempSession, setUsesBatchReading, setUsesIndirection, shouldExtendPessimisticLockScope, shouldExtendPessimisticLockScopeInDedicatedQuery, shouldExtendPessimisticLockScopeInSourceQuery, shouldExtendPessimisticLockScopeInTargetQuery, shouldForceInitializationOfSelectionCriteria, shouldInitializeSelectionCriteria, shouldMergeCascadeParts, shouldMergeCascadeReference, shouldObjectModifyCascadeToParts, shouldRefreshCascadeParts, shouldUseBatchReading, shouldUseValueFromRowWithJoin, trimRowForJoin, trimRowForJoin, useBasicIndirection, useBatchReading, useContainerIndirection, useInnerJoinFetch, useOuterJoinFetch, usesIndirection, useWeavedIndirection, validateBeforeInitialization, valueFromRowInternal, valueFromRowInternal, valueFromRowInternalWithJoinaddUnconvertedProperty, buildContainerClone, buildObjectJoinExpression, buildObjectJoinExpression, buildShallowOriginalFromRow, calculateDeferredChanges, cloneFields, convertConverterClassNamesToClasses, derivesId, extractNestedExpressions, getAttributeAccessor, getAttributeClassification, getAttributeName, getContainerPolicy, getDerivedIdMapping, getDescriptor, getFieldClassification, getFields, getGetMethodName, getMapsIdValue, getProperties, getProperty, getRealAttributeValueFromObject, getRealCollectionAttributeValueFromObject, getSelectFields, getSelectTables, getSetMethodName, getUnconvertedProperties, getWeight, hasInverseConstraintDependency, hasMapsIdValue, hasRootExpressionThatShouldUseOuterJoin, hasUnconvertedProperties, isAbstractColumnMapping, isAbstractCompositeCollectionMapping, isAbstractCompositeDirectCollectionMapping, isAbstractCompositeObjectMapping, isAbstractDirectMapping, isAggregateCollectionMapping, isAggregateMapping, isAggregateObjectMapping, isCacheable, isCandidateForPrivateOwnedRemoval, isCascadedLockingSupported, isCloningRequired, isCollectionMapping, isDatabaseMapping, isDirectCollectionMapping, isDirectMapMapping, isDirectToFieldMapping, isDirectToXMLTypeMapping, isEISMapping, isElementCollectionMapping, isInAndOutSopObject, isInOnlySopObject, isInSopObject, isJPAId, isManyToManyMapping, isManyToOneMapping, isMapKeyMapping, isMultitenantPrimaryKeyMapping, isNestedTableMapping, isOneToManyMapping, isOneToOneMapping, isOptional, isOutOnlySopObject, isOutSopObject, isOwned, isPrimaryKeyMapping, isReadOnly, isRemotelyInitialized, isStructureMapping, isTransformationMapping, isUnidirectionalOneToManyMapping, isUsingMethodAccess, isVariableOneToOneMapping, isWriteOnly, isXMLMapping, performDataModificationEvent, postCalculateChangesOnDeleted, postInitialize, prepareCascadeLockingPolicy, readFromResultSetIntoObject, readOnly, readWrite, rehashFieldDependancies, remotelyInitialized, setAttributeAccessor, setAttributeName, setAttributeValueInObject, setChangeListener, setDerivedIdMapping, setDerivesId, setDescriptor, setFields, setGetMethodName, setIsInAndOutSopObject, setIsInSopObject, setIsJPAId, setIsLazy, setIsMapKeyMapping, setIsOptional, setIsOutSopObject, setIsPrimaryKeyMapping, setIsReadOnly, setMapsIdValue, setProperties, setProperty, setSetMethodName, setWeight, simpleAddToCollectionChangeRecord, simpleRemoveFromCollectionChangeRecord, toString, updateCollectionChangeRecord, validateAfterInitialization, valueFromObject, valueFromResultSet, valueFromRow, writeFromAttributeIntoRow, writeFromObjectIntoRowForUpdateBeforeShallowDelete, writeUpdateFieldsIntoRowprotected org.eclipse.persistence.internal.helper.DatabaseField field
protected java.util.Vector collectFields()
collectFields in class ObjectReferenceMappingpublic org.eclipse.persistence.internal.helper.DatabaseField getField()
getField in class DatabaseMappingpublic java.lang.String getFieldName()
public Expression getJoinCriteria(org.eclipse.persistence.internal.expressions.ObjectExpression context, Expression base)
getJoinCriteria in class ForeignReferenceMappingpublic boolean hasConstraintDependency()
hasConstraintDependency in class ObjectReferenceMappingpublic void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
                throws DescriptorException
initialize in class ForeignReferenceMappingDescriptorExceptionpublic boolean isReferenceMapping()
isReferenceMapping in class DatabaseMappingpublic void preInsert(WriteObjectQuery query) throws DatabaseException, OptimisticLockException
preInsert in class ObjectReferenceMappingDatabaseExceptionOptimisticLockExceptionpublic void preUpdate(WriteObjectQuery query) throws DatabaseException, OptimisticLockException
preUpdate in class ObjectReferenceMappingDatabaseExceptionOptimisticLockExceptionpublic void postInsert(WriteObjectQuery query) throws DatabaseException, OptimisticLockException
postInsert in class ObjectReferenceMappingDatabaseExceptionOptimisticLockExceptionpublic void postDelete(DeleteObjectQuery query) throws DatabaseException, OptimisticLockException
postDelete in class ObjectReferenceMappingDatabaseExceptionOptimisticLockExceptionpublic void postUpdate(WriteObjectQuery query) throws DatabaseException, OptimisticLockException
postUpdate in class ObjectReferenceMappingDatabaseExceptionOptimisticLockExceptionpublic void preDelete(DeleteObjectQuery query) throws DatabaseException, OptimisticLockException
preDelete in class ObjectReferenceMappingDatabaseExceptionOptimisticLockExceptionprotected void setField(org.eclipse.persistence.internal.helper.DatabaseField field)
public void setFieldName(java.lang.String fieldName)
public void setReferenceClass(java.lang.Class referenceClass)
setReferenceClass in class ForeignReferenceMappingpublic 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)
                              throws DatabaseException
valueFromRow in class ForeignReferenceMappingDatabaseExceptionpublic void writeFromObjectIntoRow(java.lang.Object object,
                          org.eclipse.persistence.internal.sessions.AbstractRecord record,
                          org.eclipse.persistence.internal.sessions.AbstractSession session,
                          DatabaseMapping.WriteType writeType)
writeFromObjectIntoRow in class DatabaseMappingpublic void writeFromObjectIntoRowInternal(java.lang.Object object,
                                  org.eclipse.persistence.internal.sessions.AbstractRecord record,
                                  org.eclipse.persistence.internal.sessions.AbstractSession session,
                                  boolean shouldIgnoreNull)
public void writeFromObjectIntoRowWithChangeRecord(org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord,
                                          org.eclipse.persistence.internal.sessions.AbstractRecord record,
                                          org.eclipse.persistence.internal.sessions.AbstractSession session,
                                          DatabaseMapping.WriteType writeType)
writeFromObjectIntoRowWithChangeRecord in class DatabaseMappingpublic void writeFromObjectIntoRowForShallowInsert(java.lang.Object object,
                                          org.eclipse.persistence.internal.sessions.AbstractRecord record,
                                          org.eclipse.persistence.internal.sessions.AbstractSession session)
writeFromObjectIntoRowForShallowInsert in class DatabaseMappingpublic void writeFromObjectIntoRowForUpdateAfterShallowInsert(java.lang.Object object,
                                                     org.eclipse.persistence.internal.sessions.AbstractRecord record,
                                                     org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                     org.eclipse.persistence.internal.helper.DatabaseTable table)
writeFromObjectIntoRowForUpdateAfterShallowInsert in class DatabaseMappingpublic void writeFromObjectIntoRowForShallowInsertWithChangeRecord(org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord,
                                                          org.eclipse.persistence.internal.sessions.AbstractRecord record,
                                                          org.eclipse.persistence.internal.sessions.AbstractSession session)
writeFromObjectIntoRowForShallowInsertWithChangeRecord in class DatabaseMappingpublic void writeInsertFieldsIntoRow(org.eclipse.persistence.internal.sessions.AbstractRecord record,
                            org.eclipse.persistence.internal.sessions.AbstractSession session)
writeInsertFieldsIntoRow in class DatabaseMappingpublic boolean isRelationalMapping()
isRelationalMapping in class DatabaseMapping