public abstract class CollectionMapping extends ForeignReferenceMapping implements ContainerMapping
Purpose: Abstract class for relationship mappings which store collection of objects
| Modifier and Type | Field and Description |
|---|---|
protected ContainerPolicy |
containerPolicy |
protected ModifyQuery |
deleteAllQuery
Used for delete all in m-m, dc and delete all optimization in 1-m.
|
protected boolean |
hasCustomDeleteAllQuery |
protected boolean |
hasOrderBy |
cascadeMerge, cascadePersist, cascadeRefresh, cascadeRemove, hasCustomSelectionQuery, indirectionPolicy, isPrivateOwned, referenceClass, referenceClassName, referenceDescriptor, relationshipPartner, relationshipPartnerAttributeName, selectionQuery, tempInitSessionattributeAccessor, descriptor, fields, isOptional, isReadOnly, isRemotelyInitialized, NO_FIELDS, NO_WEIGHT, primaryKeyMapping, properties, weight, WEIGHT_1| Constructor and Description |
|---|
CollectionMapping()
PUBLIC:
Default constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addAggregateOrderBy(java.lang.String aggregateName,
java.lang.String queryKeyName,
boolean isDescending)
PUBLIC:
Provide order support for queryKeyName in ascending order.
|
void |
addAscendingOrdering(java.lang.String queryKeyName)
PUBLIC:
Provide order support for queryKeyName in ascending order
|
void |
addDescendingOrdering(java.lang.String queryKeyName)
PUBLIC:
Provide order support for queryKeyName in descending order.
|
void |
addOrderBy(java.lang.String queryKeyName,
boolean isDescending)
PUBLIC:
Provide order support for queryKeyName in descending or ascending order.
|
void |
addToCollectionChangeRecord(java.lang.Object newKey,
java.lang.Object newValue,
ObjectChangeSet objectChangeSet,
UnitOfWorkImpl uow)
INTERNAL:
Add a new value and its change set to the collection change record.
|
java.lang.Object |
buildBackupCloneForPartObject(java.lang.Object attributeValue,
java.lang.Object clone,
java.lang.Object backup,
UnitOfWorkImpl unitOfWork)
INTERNAL:
Used during building the backup shallow copy to copy
the vector without re-registering the target objects.
|
ChangeRecord |
buildChangeRecord(java.lang.Object clone,
ObjectChangeSet owner,
AbstractSession session)
INTERNAL:
Directly build a change record without comparison
|
java.lang.Object |
buildCloneForPartObject(java.lang.Object attributeValue,
java.lang.Object original,
java.lang.Object clone,
UnitOfWorkImpl unitOfWork,
boolean isExisting)
INTERNAL:
Require for cloning, the part must be cloned.
|
void |
buildCopy(java.lang.Object copy,
java.lang.Object original,
ObjectCopyingPolicy policy)
INTERNAL:
Copy of the attribute of the object.
|
protected java.lang.Object |
buildElementClone(java.lang.Object element,
UnitOfWorkImpl unitOfWork,
boolean isExisting)
INTERNAL:
Clone the element, if necessary.
|
void |
calculateDeferredChanges(ChangeRecord changeRecord,
AbstractSession session)
INTERNAL:
Used by AttributeLevelChangeTracking to update a changeRecord with calculated changes
as apposed to detected changes.
|
void |
cascadeMerge(java.lang.Object sourceElement,
MergeManager mergeManager)
INTERNAL:
Cascade the merge to the component object, if appropriate.
|
void |
cascadePerformRemoveIfRequired(java.lang.Object object,
UnitOfWorkImpl uow,
IdentityHashtable visitedObjects)
INTERNAL:
Cascade perform delete through mappings that require the cascade
|
void |
cascadeRegisterNewIfRequired(java.lang.Object object,
UnitOfWorkImpl uow,
IdentityHashtable visitedObjects)
INTERNAL:
Cascade registerNew for Create through mappings that require the cascade
|
void |
compareCollectionsForChange(java.lang.Object oldCollection,
java.lang.Object newCollection,
ChangeRecord changeRecord,
AbstractSession session)
INTERNAL:
This method is used to calculate the differences between two collections.
|
ChangeRecord |
compareForChange(java.lang.Object clone,
java.lang.Object backUp,
ObjectChangeSet owner,
AbstractSession session)
INTERNAL:
This method is used to create a change record from comparing two collections
|
boolean |
compareObjects(java.lang.Object firstObject,
java.lang.Object secondObject,
AbstractSession session)
INTERNAL:
Compare the attributes belonging to this mapping for the objects.
|
protected void |
compareObjectsAndWrite(java.lang.Object previousObjects,
java.lang.Object currentObjects,
WriteObjectQuery query)
INTERNAL:
The memory objects are compared and only the changes are written to the database
|
protected boolean |
compareObjectsWithoutPrivateOwned(java.lang.Object firstCollection,
java.lang.Object secondCollection,
AbstractSession session)
Compare two objects if their parts are not private owned
|
protected boolean |
compareObjectsWithPrivateOwned(java.lang.Object firstCollection,
java.lang.Object secondCollection,
AbstractSession session)
Compare two objects if their parts are private owned
|
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.
|
ContainerPolicy |
getContainerPolicy()
INTERNAL:
Returns the receiver's containerPolicy.
|
protected ModifyQuery |
getDeleteAllQuery() |
java.lang.Object |
getRealAttributeValueFromObject(java.lang.Object object,
AbstractSession session)
INTERNAL:
Return the value of an attribute, unwrapping value holders if necessary.
|
java.lang.Object |
getRealCollectionAttributeValueFromObject(java.lang.Object object,
AbstractSession session)
Convenience method.
|
protected boolean |
hasCustomDeleteAllQuery() |
boolean |
hasOrderBy()
INTERNAL:
Return true if ascending or descending ordering has been set on this
mapping via the @OrderBy annotation.
|
void |
initialize(AbstractSession session)
INTERNAL:
Initialize the state of mapping.
|
boolean |
isChangeTrackingSupported()
INTERNAL:
Return if this mapping supports change tracking.
|
boolean |
isCollectionMapping()
INTERNAL:
|
void |
iterateOnElement(DescriptorIterator iterator,
java.lang.Object element)
INTERNAL:
Iterate on the specified element.
|
void |
iterateOnRealAttributeValue(DescriptorIterator iterator,
java.lang.Object realAttributeValue)
INTERNAL:
Iterate on the attribute value.
|
void |
mergeChangesIntoObject(java.lang.Object target,
ChangeRecord chgRecord,
java.lang.Object source,
MergeManager mergeManager)
INTERNAL:
Merge changes from the source to the target object.
|
void |
mergeIntoObject(java.lang.Object target,
boolean isTargetUnInitialized,
java.lang.Object source,
MergeManager mergeManager)
INTERNAL:
Merge changes from the source to the target object.
|
protected void |
objectAddedDuringUpdate(ObjectLevelModifyQuery query,
java.lang.Object objectAdded,
ObjectChangeSet changeSet)
INTERNAL:
An object was added to the collection during an update, insert it if private.
|
protected void |
objectRemovedDuringUpdate(ObjectLevelModifyQuery query,
java.lang.Object objectDeleted)
INTERNAL:
An object was removed to the collection during an update, delete it if private.
|
protected void |
objectUnchangedDuringUpdate(ObjectLevelModifyQuery query,
java.lang.Object object)
INTERNAL:
An object is still in the collection, update it as it may have changed.
|
protected void |
objectUnchangedDuringUpdate(ObjectLevelModifyQuery query,
java.lang.Object object,
java.util.Hashtable backupclones,
CacheKey keys)
INTERNAL:
An object is still in the collection, update it as it may have changed.
|
protected void |
prepareTranslationRow(AbstractRecord translationRow,
java.lang.Object object,
AbstractSession session)
INTERNAL:
copies the non primary key information into the row currently used only in ManyToMany
|
protected java.lang.Object |
readPrivateOwnedForObject(ObjectLevelModifyQuery modifyQuery)
INTERNAL:
All the privately owned parts are read
|
void |
removeFromCollectionChangeRecord(java.lang.Object newKey,
java.lang.Object newValue,
ObjectChangeSet objectChangeSet,
UnitOfWorkImpl uow)
INTERNAL:
Remove a value and its change set from the collection change record.
|
void |
setContainerPolicy(ContainerPolicy containerPolicy)
ADVANCED:
Configure the mapping to use a container policy.
|
void |
setCustomDeleteAllQuery(ModifyQuery query)
PUBLIC:
The default delete all query for mapping can be overridden by specifying the new query.
|
void |
setDeleteAllCall(Call call)
PUBLIC:
Set the receiver's delete all call.
|
protected void |
setDeleteAllQuery(ModifyQuery query) |
void |
setDeleteAllSQLString(java.lang.String sqlString)
PUBLIC:
Set the receiver's delete all SQL string.
|
protected void |
setHasCustomDeleteAllQuery(boolean bool) |
void |
setSessionName(java.lang.String name)
PUBLIC:
Set the name of the session to execute the mapping's queries under.
|
protected boolean |
shouldUseValueFromRowWithJoin(JoinedAttributeManager joinManager)
INTERNAL:
Indicates whether valueFromRow should call valueFromRowInternalWithJoin (true)
or valueFromRowInternal (false)
|
void |
simpleAddToCollectionChangeRecord(java.lang.Object referenceKey,
java.lang.Object changeSetToAdd,
ObjectChangeSet changeSet,
AbstractSession session)
ADVANCED:
This method is used to have an object add to a collection once the
changeSet is applied.
|
void |
simpleRemoveFromCollectionChangeRecord(java.lang.Object referenceKey,
java.lang.Object changeSetToRemove,
ObjectChangeSet changeSet,
AbstractSession session)
ADVANCED:
This method is used to have an object removed from a collection once the
changeSet is applied.
|
void |
updateChangeRecord(java.lang.Object clone,
java.lang.Object newValue,
java.lang.Object oldValue,
ObjectChangeSet objectChangeSet,
UnitOfWorkImpl uow)
INTERNAL:
Either create a new change record or update with the new value.
|
void |
useCollectionClass(java.lang.Class concreteClass)
PUBLIC:
Configure the mapping to use an instance of the specified container class
to hold the target objects.
|
void |
useMapClass(java.lang.Class concreteClass)
PUBLIC:
Configure the mapping to use an instance of the specified container
class to hold the target objects.
|
void |
useMapClass(java.lang.Class concreteClass,
java.lang.String keyName)
PUBLIC:
Configure the mapping to use an instance of the specified container
clas to hold the target objects.
|
void |
useSortedSetClass(java.lang.Class concreteClass,
java.util.Comparator comparator)
PUBLIC:
Configure the mapping to use an instance of the specified container class
to hold the target objects.
|
void |
useTransparentCollection()
PUBLIC:
If transparent indirection is used, a special collection will be placed in the source
object's attribute.
|
void |
useTransparentList()
PUBLIC:
If transparent indirection is used, a special collection will be placed in the source
object's attribute.
|
void |
useTransparentMap(java.lang.String methodName)
PUBLIC:
If transparent indirection is used, a special map will be placed in the source
object's attribute.
|
void |
useTransparentSet()
PUBLIC:
If transparent indirection is used, a special collection will be placed in the source
object's attribute.
|
void |
validateBeforeInitialization(AbstractSession session)
INTERNAL:
To validate mappings declaration
|
protected java.lang.Object |
valueFromRowInternalWithJoin(AbstractRecord row,
JoinedAttributeManager joinManager,
AbstractSession executionSession)
INTERNAL:
Return the value of the field from the row or a value holder on the query to obtain the object.
|
boolean |
verifyDelete(java.lang.Object object,
AbstractSession session)
INTERNAL:
Checks if object is deleted from the database or not.
|
buildBackupClone, buildClone, buildCloneFromRow, clone, createUnitOfWorkValueHolder, dontDoMerge, dontUseIndirection, getAttributeValueFromObject, getAttributeValueWithClonedValueHolders, getIndirectionPolicy, getJoinCriteria, getReferenceClass, getReferenceClassName, getReferenceDescriptor, getRelationshipPartner, getRelationshipPartnerAttributeName, getSelectionCriteria, getSelectionQuery, getTempSession, hasCustomSelectionQuery, initializeReferenceDescriptor, initializeSelectionQuery, isAttributeValueInstantiated, isCascadeMerge, isCascadePersist, isCascadeRefresh, isCascadeRemove, isForeignReferenceMapping, isPrivateOwned, iterate, prepareHistoricalQuery, prepareNestedJoins, privateOwnedRelationship, setCascadeAll, setCascadeMerge, setCascadePersist, setCascadeRefresh, setCascadeRemove, setCustomSelectionQuery, setHasCustomSelectionQuery, setIndirectionPolicy, setIsPrivateOwned, setRealAttributeValueInObject, setReferenceClass, setReferenceClassName, setReferenceDescriptor, setRelationshipPartner, setRelationshipPartnerAttributeName, setSelectionCall, setSelectionCriteria, setSelectionQuery, setSelectionSQLString, setTempSession, setUsesIndirection, shouldInitializeSelectionCriteria, shouldMergeCascadeParts, shouldMergeCascadeReference, shouldObjectModifyCascadeToParts, shouldObjectModifyCascadeToPartsForPreDelete, trimRowForJoin, trimRowForJoin, useBasicIndirection, usesIndirection, useWeavedIndirection, valueFromRow, valueFromRowInternalbuildObjectJoinExpression, buildObjectJoinExpression, buildShallowOriginalFromRow, cloneFields, collectFields, extractNestedExpressions, getAttributeAccessor, getAttributeClassification, getAttributeName, getDescriptor, getField, getFieldClassification, getFields, getGetMethodName, getProperties, getProperty, getReferenceClassDescriptor, getSetMethodName, getWeight, hasConstraintDependency, hasDependency, hasInverseConstraintDependency, isAbstractCompositeCollectionMapping, isAbstractCompositeDirectCollectionMapping, isAbstractCompositeObjectMapping, isAbstractDirectMapping, isAggregateCollectionMapping, isAggregateMapping, isAggregateObjectMapping, isCascadedLockingSupported, isCloningRequired, isDatabaseMapping, isDirectCollectionMapping, isDirectMapMapping, isDirectToFieldMapping, isDirectToXMLTypeMapping, isEISMapping, isJoiningSupported, isManyToManyMapping, isNestedTableMapping, isObjectReferenceMapping, isObjectTypeMapping, isOneToManyMapping, isOneToOneMapping, isOptional, isPrimaryKeyMapping, isReadOnly, isReferenceMapping, isRelationalMapping, isRemotelyInitialized, isSerializedObjectMapping, isStructureMapping, isTransformationMapping, isTypeConversionMapping, isUsingMethodAccess, isVariableOneToOneMapping, isWriteOnly, isXMLMapping, performDataModificationEvent, postDelete, postInitialize, postInsert, postUpdate, preDelete, preInitialize, preInsert, prepareCascadeLockingPolicy, preUpdate, readFromRowIntoObject, readFromRowIntoObject, readOnly, readWrite, rehashFieldDependancies, setAttributeAccessor, setAttributeName, setAttributeValueInObject, setDescriptor, setFields, setGetMethodName, setIsOptional, setIsPrimaryKeyMapping, setIsReadOnly, setProperties, setProperty, setSetMethodName, setWeight, toString, validateAfterInitialization, valueFromObject, valueFromRow, writeFromAttributeIntoRow, writeFromObjectIntoRow, writeFromObjectIntoRowForShallowDelete, writeFromObjectIntoRowForShallowInsert, writeFromObjectIntoRowForShallowInsertWithChangeRecord, writeFromObjectIntoRowForUpdate, writeFromObjectIntoRowForWhereClause, writeFromObjectIntoRowWithChangeRecord, writeInsertFieldsIntoRow, writeUpdateFieldsIntoRowprotected transient ModifyQuery deleteAllQuery
protected transient boolean hasCustomDeleteAllQuery
protected ContainerPolicy containerPolicy
protected transient boolean hasOrderBy
public void addAscendingOrdering(java.lang.String queryKeyName)
public void addDescendingOrdering(java.lang.String queryKeyName)
public void addOrderBy(java.lang.String queryKeyName,
boolean isDescending)
public void addAggregateOrderBy(java.lang.String aggregateName,
java.lang.String queryKeyName,
boolean isDescending)
public java.lang.Object buildBackupCloneForPartObject(java.lang.Object attributeValue,
java.lang.Object clone,
java.lang.Object backup,
UnitOfWorkImpl unitOfWork)
buildBackupCloneForPartObject in class ForeignReferenceMappingpublic java.lang.Object buildCloneForPartObject(java.lang.Object attributeValue,
java.lang.Object original,
java.lang.Object clone,
UnitOfWorkImpl unitOfWork,
boolean isExisting)
buildCloneForPartObject in class ForeignReferenceMappingpublic void buildCopy(java.lang.Object copy,
java.lang.Object original,
ObjectCopyingPolicy policy)
buildCopy in class DatabaseMappingprotected java.lang.Object buildElementClone(java.lang.Object element,
UnitOfWorkImpl unitOfWork,
boolean isExisting)
public void cascadePerformRemoveIfRequired(java.lang.Object object,
UnitOfWorkImpl uow,
IdentityHashtable visitedObjects)
cascadePerformRemoveIfRequired in class DatabaseMappingpublic void cascadeRegisterNewIfRequired(java.lang.Object object,
UnitOfWorkImpl uow,
IdentityHashtable visitedObjects)
cascadeRegisterNewIfRequired in class DatabaseMappingpublic void calculateDeferredChanges(ChangeRecord changeRecord, AbstractSession session)
calculateDeferredChanges in class DatabaseMappingpublic void cascadeMerge(java.lang.Object sourceElement,
MergeManager mergeManager)
cascadeMerge in class DatabaseMappingpublic void compareCollectionsForChange(java.lang.Object oldCollection,
java.lang.Object newCollection,
ChangeRecord changeRecord,
AbstractSession session)
public ChangeRecord compareForChange(java.lang.Object clone, java.lang.Object backUp, ObjectChangeSet owner, AbstractSession session)
compareForChange in class DatabaseMappingpublic boolean compareObjects(java.lang.Object firstObject,
java.lang.Object secondObject,
AbstractSession session)
compareObjects in class ForeignReferenceMappingprotected void compareObjectsAndWrite(java.lang.Object previousObjects,
java.lang.Object currentObjects,
WriteObjectQuery query)
throws DatabaseException,
OptimisticLockException
protected boolean compareObjectsWithoutPrivateOwned(java.lang.Object firstCollection,
java.lang.Object secondCollection,
AbstractSession session)
compareObjectsWithoutPrivateOwned in class ForeignReferenceMappingprotected boolean compareObjectsWithPrivateOwned(java.lang.Object firstCollection,
java.lang.Object secondCollection,
AbstractSession session)
compareObjectsWithPrivateOwned in class ForeignReferenceMappingpublic void convertClassNamesToClasses(java.lang.ClassLoader classLoader)
convertClassNamesToClasses in class ForeignReferenceMappingclassLoader - public ContainerPolicy getContainerPolicy()
getContainerPolicy in interface ContainerMappinggetContainerPolicy in class DatabaseMappingprotected ModifyQuery getDeleteAllQuery()
public java.lang.Object getRealAttributeValueFromObject(java.lang.Object object,
AbstractSession session)
throws DescriptorException
getRealAttributeValueFromObject in class ForeignReferenceMappingDescriptorExceptionpublic java.lang.Object getRealCollectionAttributeValueFromObject(java.lang.Object object,
AbstractSession session)
throws DescriptorException
getRealCollectionAttributeValueFromObject in class DatabaseMappingDescriptorExceptionprotected boolean hasCustomDeleteAllQuery()
public boolean hasOrderBy()
public void initialize(AbstractSession session) throws DescriptorException
initialize in class ForeignReferenceMappingDescriptorExceptionpublic boolean isCollectionMapping()
isCollectionMapping in class DatabaseMappingpublic void iterateOnElement(DescriptorIterator iterator, java.lang.Object element)
public void iterateOnRealAttributeValue(DescriptorIterator iterator, java.lang.Object realAttributeValue)
iterateOnRealAttributeValue in class ForeignReferenceMappingpublic void mergeChangesIntoObject(java.lang.Object target,
ChangeRecord chgRecord,
java.lang.Object source,
MergeManager mergeManager)
mergeChangesIntoObject in class DatabaseMappingpublic void mergeIntoObject(java.lang.Object target,
boolean isTargetUnInitialized,
java.lang.Object source,
MergeManager mergeManager)
mergeIntoObject in class DatabaseMappingprotected void objectAddedDuringUpdate(ObjectLevelModifyQuery query, java.lang.Object objectAdded, ObjectChangeSet changeSet) throws DatabaseException, OptimisticLockException
protected void objectRemovedDuringUpdate(ObjectLevelModifyQuery query, java.lang.Object objectDeleted) throws DatabaseException, OptimisticLockException
protected void objectUnchangedDuringUpdate(ObjectLevelModifyQuery query, java.lang.Object object) throws DatabaseException, OptimisticLockException
protected void prepareTranslationRow(AbstractRecord translationRow, java.lang.Object object, AbstractSession session)
protected void objectUnchangedDuringUpdate(ObjectLevelModifyQuery query, java.lang.Object object, java.util.Hashtable backupclones, CacheKey keys) throws DatabaseException, OptimisticLockException
protected java.lang.Object readPrivateOwnedForObject(ObjectLevelModifyQuery modifyQuery) throws DatabaseException
DatabaseExceptionpublic void setContainerPolicy(ContainerPolicy containerPolicy)
setContainerPolicy in interface ContainerMappingpublic void setCustomDeleteAllQuery(ModifyQuery query)
protected void setDeleteAllQuery(ModifyQuery query)
public void setDeleteAllSQLString(java.lang.String sqlString)
public void setDeleteAllCall(Call call)
protected void setHasCustomDeleteAllQuery(boolean bool)
public void setSessionName(java.lang.String name)
public void simpleAddToCollectionChangeRecord(java.lang.Object referenceKey,
java.lang.Object changeSetToAdd,
ObjectChangeSet changeSet,
AbstractSession session)
simpleAddToCollectionChangeRecord in class DatabaseMappingpublic void simpleRemoveFromCollectionChangeRecord(java.lang.Object referenceKey,
java.lang.Object changeSetToRemove,
ObjectChangeSet changeSet,
AbstractSession session)
simpleRemoveFromCollectionChangeRecord in class DatabaseMappingpublic void updateChangeRecord(java.lang.Object clone,
java.lang.Object newValue,
java.lang.Object oldValue,
ObjectChangeSet objectChangeSet,
UnitOfWorkImpl uow)
updateChangeRecord in class DatabaseMappingpublic void useCollectionClass(java.lang.Class concreteClass)
The container class must implement (directly or indirectly) the
java.util.Collection interface.
useCollectionClass in interface ContainerMappingpublic void useSortedSetClass(java.lang.Class concreteClass,
java.util.Comparator comparator)
The container class must implement (directly or indirectly) the
java.util.SortedSet interface.
public void useMapClass(java.lang.Class concreteClass,
java.lang.String keyName)
Map is the value returned by either a call to a
specified zero-argument method or the value of a field.
To facilitate resolving the keyName to a method or field, the mapping's referenceClass must set before calling this method.
Note: If the keyName is for a method, that method must be implemented
by the class (or a superclass) of any value to be inserted into the
Map.
The container class must implement (directly or indirectly) the
java.util.Map interface.
useMapClass in interface ContainerMappingpublic void useMapClass(java.lang.Class concreteClass)
Map is an instance of the composite primary key class.
To facilitate resolving the primary key class, the mapping's referenceClass must set before calling this method.
The container class must implement (directly or indirectly) the
java.util.Map interface.
public void useTransparentCollection()
public void useTransparentSet()
public void useTransparentList()
public void useTransparentMap(java.lang.String methodName)
The key used in the Map is the value returned by a call to the zero parameter method named methodName. The method should be a zero argument method implemented (or inherited) by the value to be inserted into the Map.
public void validateBeforeInitialization(AbstractSession session) throws DescriptorException
validateBeforeInitialization in class ForeignReferenceMappingDescriptorExceptionpublic boolean verifyDelete(java.lang.Object object,
AbstractSession session)
throws DatabaseException
verifyDelete in class DatabaseMappingDatabaseExceptionpublic void addToCollectionChangeRecord(java.lang.Object newKey,
java.lang.Object newValue,
ObjectChangeSet objectChangeSet,
UnitOfWorkImpl uow)
addToCollectionChangeRecord in class DatabaseMappingpublic boolean isChangeTrackingSupported()
isChangeTrackingSupported in class DatabaseMappingpublic void removeFromCollectionChangeRecord(java.lang.Object newKey,
java.lang.Object newValue,
ObjectChangeSet objectChangeSet,
UnitOfWorkImpl uow)
removeFromCollectionChangeRecord in class DatabaseMappingpublic ChangeRecord buildChangeRecord(java.lang.Object clone, ObjectChangeSet owner, AbstractSession session)
buildChangeRecord in class DatabaseMappingprotected boolean shouldUseValueFromRowWithJoin(JoinedAttributeManager joinManager)
shouldUseValueFromRowWithJoin in class ForeignReferenceMappingprotected java.lang.Object valueFromRowInternalWithJoin(AbstractRecord row, JoinedAttributeManager joinManager, AbstractSession executionSession) throws DatabaseException
valueFromRowInternalWithJoin in class ForeignReferenceMappingDatabaseException