|
EclipseLink 2.0.0, build 'v20091127-r5931' API Reference | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.eclipse.persistence.mappings.DatabaseMapping org.eclipse.persistence.mappings.ForeignReferenceMapping
public abstract class ForeignReferenceMapping
Purpose: Abstract class for relationship mappings
Field Summary | |
---|---|
protected boolean |
cascadeDetach
|
protected boolean |
cascadeMerge
|
protected boolean |
cascadePersist
Cascading flags used by the EntityManager |
protected boolean |
cascadeRefresh
|
protected boolean |
cascadeRemove
|
protected boolean |
forceInitializationOfSelectionCriteria
This is a way (after cloning) to force the initialization of the selection criteria |
protected boolean |
hasCustomSelectionQuery
Indicates whether the selection query is TopLink generated or defined by the user. |
protected org.eclipse.persistence.internal.indirection.IndirectionPolicy |
indirectionPolicy
Implements indirection behavior |
static int |
INNER_JOIN
Specify any INNER join on a join fetch. |
protected boolean |
isPrivateOwned
Indicates whether the referenced object is privately owned or not. |
protected int |
joinFetch
Define if the relationship should always be join fetched. |
static int |
NONE
Specify no join fetch, this is the default. |
static int |
OUTER_JOIN
Specify any OUTER join on a join fetch. |
protected java.lang.Class |
referenceClass
This is used only in descriptor proxy in remote session |
protected java.lang.String |
referenceClassName
|
protected ClassDescriptor |
referenceDescriptor
The descriptor of the reference class. |
protected DatabaseMapping |
relationshipPartner
Used to reference the other half of a bi-directional relationship. |
protected java.lang.String |
relationshipPartnerAttributeName
Set by users, used to retrieve the backpointer for this mapping |
protected boolean |
requiresTransientWeavedFields
Flag used to determine if we need to weave the transient annotation on weaved fields. |
protected ReadQuery |
selectionQuery
This query is used to read referenced objects for this mapping. |
protected org.eclipse.persistence.internal.sessions.AbstractSession |
tempInitSession
The session is temporarily used for initialization. |
protected boolean |
usesBatchReading
Indicates whether the referenced object should always be batch read on read all queries. |
Fields inherited from class org.eclipse.persistence.mappings.DatabaseMapping |
---|
attributeAccessor, attributeName, derivedIdMapping, derivesId, descriptor, fields, isJPAId, isLazy, isMapKeyMapping, isOptional, isPrimaryKeyMapping, isReadOnly, isRemotelyInitialized, mapsIdValue, NO_FIELDS, NO_WEIGHT, properties, weight, WEIGHT_1 |
Constructor Summary | |
---|---|
protected |
ForeignReferenceMapping()
|
Method Summary | |
---|---|
protected java.lang.Object |
batchedValueFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord row,
ReadAllQuery query)
INTERNAL: Retrieve the value through using batch reading. |
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. |
abstract java.lang.Object |
buildBackupCloneForPartObject(java.lang.Object attributeValue,
java.lang.Object clone,
java.lang.Object backup,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
INTERNAL: Used during building the backup shallow copy to copy the target object without re-registering it. |
void |
buildClone(java.lang.Object original,
java.lang.Object clone,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
INTERNAL: Clone the attribute from the original and assign it to the clone. |
abstract java.lang.Object |
buildCloneForPartObject(java.lang.Object attributeValue,
java.lang.Object original,
java.lang.Object clone,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
boolean isExisting)
INTERNAL: Require for cloning, the part must be cloned. |
void |
buildCloneFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
java.lang.Object clone,
ObjectBuildingQuery sourceQuery,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
INTERNAL: A combination of readFromRowIntoObject and buildClone. |
abstract java.lang.Object[] |
buildReferencesPKList(java.lang.Object entity,
java.lang.Object attribute,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: This method will access the target relationship and create a list of PKs of the target entities. |
java.lang.Object |
clone()
INTERNAL: The mapping clones itself to create deep copy. |
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 abstract boolean |
compareObjectsWithoutPrivateOwned(java.lang.Object first,
java.lang.Object second,
org.eclipse.persistence.internal.sessions.AbstractSession session)
Compare two objects if their parts are not private owned |
protected abstract boolean |
compareObjectsWithPrivateOwned(java.lang.Object first,
java.lang.Object second,
org.eclipse.persistence.internal.sessions.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. |
org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder |
createUnitOfWorkValueHolder(ValueHolderInterface attributeValue,
java.lang.Object original,
java.lang.Object clone,
org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
boolean buildDirectlyFromRow)
INTERNAL: Builder the unit of work value holder. |
protected boolean |
dontDoMerge(java.lang.Object target,
java.lang.Object source,
org.eclipse.persistence.internal.sessions.MergeManager mergeManager)
INTERNAL: Return true if the merge should be bypassed. |
void |
dontUseBatchReading()
PUBLIC: Indicates whether the referenced object should always be batch read on read all queries. |
void |
dontUseIndirection()
PUBLIC: Indirection means that a ValueHolder will be put in-between the attribute and the real object. |
void |
extendPessimisticLockScopeInSourceQuery(ObjectLevelReadQuery sourceQuery)
INTERNAL: Called if shouldExtendPessimisticLockScopeInSourceQuery is true. |
protected void |
extendPessimisticLockScopeInTargetQuery(ObjectLevelReadQuery targetQuery,
ObjectBuildingQuery sourceQuery)
INTERNAL: Called if shouldExtendPessimisticLockScopeInTargetQuery() is true. |
java.lang.Object |
extractResultFromBatchQuery(DatabaseQuery query,
org.eclipse.persistence.internal.sessions.AbstractRecord Record,
org.eclipse.persistence.internal.sessions.AbstractSession session,
org.eclipse.persistence.internal.sessions.AbstractRecord argumentRow)
INTERNAL: Extract the value from the batch optimized query, this should be supported by most query types. |
void |
fixObjectReferences(java.lang.Object object,
java.util.Map objectDescriptors,
java.util.Map processedObjects,
ObjectLevelReadQuery query,
RemoteSession session)
INTERNAL: An object has been serialized from the server to the client. |
java.lang.Object |
getAttributeValueFromObject(java.lang.Object object)
INTERNAL: Return the value of an attribute which this mapping represents for an object. |
java.lang.Object |
getAttributeValueWithClonedValueHolders(java.lang.Object object)
INTERNAL: Returns the attribute value from the reference object. |
protected java.util.Hashtable |
getBatchReadObjects(DatabaseQuery query,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: The hashtable of batched objects resides in one of two places. |
protected ReadQuery |
getExtendPessimisticLockScopeDedicatedQuery(org.eclipse.persistence.internal.sessions.AbstractSession session,
short lockMode)
INTERNAL: Should be overridden by subclass that allows setting extendPessimisticLockScope to DEDICATED_QUERY. |
org.eclipse.persistence.internal.indirection.IndirectionPolicy |
getIndirectionPolicy()
INTERNAL: Return the mapping's indirection policy. |
Expression |
getJoinCriteria(org.eclipse.persistence.internal.expressions.QueryKeyExpression exp)
INTERNAL: Returns the join criteria stored in the mapping selection query. |
int |
getJoinFetch()
PUBLIC: Return if this relationship should always be join fetched. |
java.lang.Object |
getObjectCorrespondingTo(java.lang.Object object,
RemoteSession session,
java.util.Map objectDescriptors,
java.util.Map processedObjects,
ObjectLevelReadQuery query)
INTERNAL: return the object on the client corresponding to the specified object. |
java.lang.Object |
getRealAttributeValueFromAttribute(java.lang.Object attributeValue,
java.lang.Object object,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Returns the attribute value from the reference object. |
java.lang.Class |
getReferenceClass()
PUBLIC: Returns the reference class. |
java.lang.String |
getReferenceClassName()
INTERNAL: Returns the reference class name. |
ClassDescriptor |
getReferenceDescriptor()
INTERNAL: Return the referenceDescriptor. |
DatabaseMapping |
getRelationshipPartner()
INTERNAL: Return the relationshipPartner mapping for this bi-directional mapping. |
java.lang.String |
getRelationshipPartnerAttributeName()
PUBLIC: Use this method retreive the relationship partner attribute name of this bidirectional Mapping. |
Expression |
getSelectionCriteria()
INTERNAL: Returns the selection criteria stored in the mapping selection query. |
ReadQuery |
getSelectionQuery()
INTERNAL: Returns the read query associated with the mapping. |
protected org.eclipse.persistence.internal.sessions.AbstractSession |
getTempSession()
|
java.lang.Object |
getValueFromRemoteValueHolder(org.eclipse.persistence.internal.sessions.remote.RemoteValueHolder remoteValueHolder)
INTERNAL: Extract and return the appropriate value from the specified remote value holder. |
boolean |
hasCustomSelectionQuery()
INTERNAL: Indicates whether the selection query is TopLink generated or defined by the user. |
void |
initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Initialize the state of mapping. |
protected void |
initializeReferenceDescriptor(org.eclipse.persistence.internal.sessions.AbstractSession session)
Initialize and set the descriptor for the referenced class in this mapping. |
protected void |
initializeSelectionQuery(org.eclipse.persistence.internal.sessions.AbstractSession session)
A subclass should implement this method if it wants non default behavior. |
void |
instantiateAttribute(java.lang.Object object,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Trigger the instantiation of the attribute if lazy. |
boolean |
isAttributeValueInstantiated(java.lang.Object object)
INTERNAL: The referenced object is checked if it is instantiated or not |
boolean |
isCascadeDetach()
PUBLIC: Check cascading value for the detach operation. |
boolean |
isCascadeMerge()
PUBLIC: Check cascading value for the MERGE operation. |
boolean |
isCascadePersist()
PUBLIC: Check cascading value for the CREATE operation. |
boolean |
isCascadeRefresh()
PUBLIC: Check cascading value for the REFRESH operation. |
boolean |
isCascadeRemove()
PUBLIC: Check cascading value for the REMOVE operation. |
protected boolean |
isExtendingPessimisticLockScope(ObjectBuildingQuery sourceQuery)
INTERNAL: Indicates whether the source query's pessimistic lock scope scope should be extended in the target query. |
boolean |
isForeignReferenceMapping()
INTERNAL: |
boolean |
isInnerJoinFetched()
PUBLIC: Return if this relationship should always be INNER join fetched. |
boolean |
isJoinFetched()
PUBLIC: Return if this relationship should always be join fetched. |
boolean |
isJoiningSupported()
INTERNAL: Return if this mapping supports joining. |
boolean |
isLazy()
Return if this mapping is lazy. |
boolean |
isLockableMapping()
INTERNAL: Return whether this mapping should be traversed when we are locking |
boolean |
isOuterJoinFetched()
PUBLIC: Return if this relationship should always be OUTER join fetched. |
boolean |
isPrivateOwned()
PUBLIC: Return true if referenced objects are privately owned else false. |
void |
iterate(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator)
INTERNAL: Iterate on the iterator's current object's attribute defined by this mapping. |
abstract void |
iterateOnRealAttributeValue(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator,
java.lang.Object realAttributeValue)
INTERNAL: Iterate on the attribute value. |
void |
mergeRemoteValueHolder(java.lang.Object clientSideDomainObject,
java.lang.Object serverSideDomainObject,
org.eclipse.persistence.internal.sessions.MergeManager mergeManager)
INTERNAL: Replace the client value holder with the server value holder, after copying some of the settings from the client value holder. |
protected void |
postPrepareNestedBatchQuery(ReadQuery batchQuery,
ReadAllQuery query)
INTERNAL: Allow the mapping the do any further batch preparation. |
void |
preInitialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Initialize the state of mapping. |
protected ReadQuery |
prepareHistoricalQuery(ReadQuery targetQuery,
ObjectBuildingQuery sourceQuery,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
INTERNAL: Allow for the mapping to perform any historical query additions. |
ReadQuery |
prepareNestedBatchQuery(ReadAllQuery query)
INTERNAL: Clone and prepare the selection query as a nested batch read query. |
protected ObjectLevelReadQuery |
prepareNestedJoinQueryClone(org.eclipse.persistence.internal.sessions.AbstractRecord row,
java.util.List dataResults,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
ObjectBuildingQuery sourceQuery,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
INTERNAL: Prepare the clone of the nested query for joining. |
ObjectLevelReadQuery |
prepareNestedJoins(org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
ObjectBuildingQuery baseQuery,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Clone and prepare the JoinedAttributeManager nested JoinedAttributeManager. |
void |
privateOwnedRelationship()
PUBLIC: Sets the reference object to be a private owned. |
void |
remoteInitialization(DistributedSession session)
INTERNAL: Once descriptors are serialized to the remote session. |
java.util.Map |
replaceValueHoldersIn(java.lang.Object object,
org.eclipse.persistence.internal.sessions.remote.RemoteSessionController controller)
INTERNAL: replace the value holders in the specified reference object(s) |
boolean |
requiresTransientWeavedFields()
Returns true if this mappings associated weaved field requires a transient setting to avoid metadata processing. |
protected void |
setBatchReadObjects(java.util.Hashtable referenceObjectsByKey,
DatabaseQuery query,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: The hashtable of batched objects resides in one of two places. |
void |
setCascadeAll(boolean value)
PUBLIC: Sets the cascading for all JPA operations. |
void |
setCascadeDetach(boolean value)
PUBLIC: Sets the cascading for the JPA detach operation. |
void |
setCascadeMerge(boolean value)
PUBLIC: Sets the cascading for the JPA MERGE operation. |
void |
setCascadePersist(boolean value)
PUBLIC: Sets the cascading for the JPA CREATE operation. |
void |
setCascadeRefresh(boolean value)
PUBLIC: Sets the cascading for the JPA REFRESH operation. |
void |
setCascadeRemove(boolean value)
PUBLIC: Sets the cascading for the JPA REMOVE operation. |
void |
setCustomSelectionQuery(ReadQuery query)
PUBLIC: Relationship mappings creates a read query to read reference objects. |
void |
setForceInitializationOfSelectionCriteria(boolean bool)
INTERNAL: A way of forcing the selection criteria to be rebuilt. |
protected void |
setHasCustomSelectionQuery(boolean bool)
|
void |
setIndirectionPolicy(org.eclipse.persistence.internal.indirection.IndirectionPolicy indirectionPolicy)
ADVANCED: Set the indirection policy. |
void |
setIsPrivateOwned(boolean isPrivateOwned)
PUBLIC: Set if the relationship is privately owned. |
void |
setJoinFetch(int joinFetch)
PUBLIC: Indicates whether the referenced object(s) should always be joined on read queries. |
void |
setRealAttributeValueInObject(java.lang.Object object,
java.lang.Object value)
INTERNAL: Set the value of the attribute mapped by this mapping, placing it inside a value holder if necessary. |
void |
setReferenceClass(java.lang.Class referenceClass)
PUBLIC: Set the referenced class. |
void |
setReferenceClassName(java.lang.String referenceClassName)
INTERNAL: Used by MW. |
protected void |
setReferenceDescriptor(ClassDescriptor aDescriptor)
Set the referenceDescriptor. |
void |
setRelationshipPartner(DatabaseMapping mapping)
INTERNAL: Sets the relationshipPartner mapping for this bi-directional mapping. |
void |
setRelationshipPartnerAttributeName(java.lang.String attributeName)
PUBLIC: Use this method to specify the relationship partner attribute name of a bidirectional Mapping. |
void |
setRequiresTransientWeavedFields(boolean requiresTransientWeavedFields)
Set this flag if this mappings associated weaved field requires a transient setting to avoid metadata processing. |
void |
setSelectionCall(Call call)
PUBLIC: This is a property on the mapping which will allow custom call to be substituted for reading a reference object. |
void |
setSelectionCriteria(Expression anExpression)
PUBLIC: Sets the selection criteria to be used as a where clause to read reference objects. |
protected void |
setSelectionQuery(ReadQuery aQuery)
Sets the query |
void |
setSelectionSQLString(java.lang.String sqlString)
PUBLIC: This is a property on the mapping which will allow custom SQL to be substituted for reading a reference object. |
void |
setShouldExtendPessimisticLockScope(boolean shouldExtend)
ADVANCED: Indicates whether pessimistic lock of ObjectLevelReadQuery with isPessimisticLockScopeExtended set to true should be applied through this mapping beyond the tables mapped to the source object. |
protected void |
setTempSession(org.eclipse.persistence.internal.sessions.AbstractSession session)
|
void |
setUsesBatchReading(boolean usesBatchReading)
PUBLIC: Indicates whether the referenced object should always be batch read on read all queries. |
void |
setUsesIndirection(boolean usesIndirection)
PUBLIC: Indirection means that a ValueHolder will be put in-between the attribute and the real object. |
boolean |
shouldExtendPessimisticLockScope()
INTERNAL: Indicates whether pessimistic lock of ObjectLevelReadQuery with isPessimisticLockScopeExtended set to true should be applied through this mapping beyond the tables mapped to the source object. |
boolean |
shouldExtendPessimisticLockScopeInDedicatedQuery()
|
boolean |
shouldExtendPessimisticLockScopeInSourceQuery()
|
boolean |
shouldExtendPessimisticLockScopeInTargetQuery()
|
protected boolean |
shouldForceInitializationOfSelectionCriteria()
INTERNAL: |
protected boolean |
shouldInitializeSelectionCriteria()
|
boolean |
shouldMergeCascadeParts(org.eclipse.persistence.internal.sessions.MergeManager mergeManager)
INTERNAL: Returns true if the merge should cascade to the mappings reference's parts. |
protected boolean |
shouldMergeCascadeReference(org.eclipse.persistence.internal.sessions.MergeManager mergeManager)
Returns true if the merge should cascade to the mappings reference. |
protected boolean |
shouldObjectModifyCascadeToParts(ObjectLevelModifyQuery query)
Returns true if any process leading to object modification should also affect its parts Usually used by write, insert, update and delete. |
boolean |
shouldUseBatchReading()
PUBLIC: Indicates whether the referenced object should always be batch read on read all queries. |
protected boolean |
shouldUseValueFromRowWithJoin(org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
ObjectBuildingQuery sourceQuery)
INTERNAL: Indicates whether valueFromRow should call valueFromRowInternalWithJoin (true) or valueFromRowInternal (false) |
org.eclipse.persistence.internal.sessions.AbstractRecord |
trimRowForJoin(org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
INTERNAL: Return a sub-partition of the row starting at the index for the mapping. |
org.eclipse.persistence.internal.sessions.AbstractRecord |
trimRowForJoin(org.eclipse.persistence.internal.sessions.AbstractRecord row,
java.lang.Object value,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
INTERNAL: Return a sub-partition of the row starting at the index. |
void |
useBasicIndirection()
PUBLIC: Indirection means that a ValueHolder will be put in-between the attribute and the real object. |
void |
useBatchReading()
PUBLIC: Indicates whether the referenced object should always be batch read on read all queries. |
void |
useContainerIndirection(java.lang.Class containerClass)
PUBLIC: Indirection means that a IndirectContainer (wrapping a ValueHolder) will be put in-between the attribute and the real object. |
void |
useInnerJoinFetch()
PUBLIC: Specify this relationship to always be join fetched using an INNER join. |
void |
useOuterJoinFetch()
PUBLIC: Specify this relationship to always be join fetched using an OUTER join. |
boolean |
usesIndirection()
PUBLIC: Indirection means that some sort of indirection object will be put in-between the attribute and the real object. |
void |
useWeavedIndirection(java.lang.String setMethodName)
INTERNAL: Configures the mapping to used weaved indirection. |
void |
validateBeforeInitialization(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: To validate mappings declaration |
abstract java.lang.Object |
valueFromPKList(java.lang.Object[] pks,
org.eclipse.persistence.internal.sessions.AbstractSession session)
This method is used to load a relationship from a list of PKs. |
java.lang.Object |
valueFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
ObjectBuildingQuery sourceQuery,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
INTERNAL: Return the value of the reference attribute or a value holder. |
protected java.lang.Object |
valueFromRowInternal(org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
ObjectBuildingQuery sourceQuery,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
INTERNAL: Return the value of the reference attribute or a value holder. |
protected java.lang.Object |
valueFromRowInternalWithJoin(org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
ObjectBuildingQuery sourceQuery,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
INTERNAL: If the query used joining or partial attributes, build the target object directly. |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected java.lang.Class referenceClass
protected java.lang.String referenceClassName
protected transient org.eclipse.persistence.internal.sessions.AbstractSession tempInitSession
protected transient ClassDescriptor referenceDescriptor
protected transient ReadQuery selectionQuery
protected boolean isPrivateOwned
protected boolean usesBatchReading
protected org.eclipse.persistence.internal.indirection.IndirectionPolicy indirectionPolicy
protected transient boolean hasCustomSelectionQuery
protected DatabaseMapping relationshipPartner
protected java.lang.String relationshipPartnerAttributeName
protected boolean cascadePersist
protected boolean cascadeMerge
protected boolean cascadeRefresh
protected boolean cascadeRemove
protected boolean cascadeDetach
protected boolean requiresTransientWeavedFields
protected int joinFetch
public static final int INNER_JOIN
public static final int OUTER_JOIN
public static final int NONE
protected boolean forceInitializationOfSelectionCriteria
Constructor Detail |
---|
protected ForeignReferenceMapping()
Method Detail |
---|
protected java.lang.Object batchedValueFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord row, ReadAllQuery query)
public void buildBackupClone(java.lang.Object clone, java.lang.Object backup, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
buildBackupClone
in class DatabaseMapping
public abstract java.lang.Object buildBackupCloneForPartObject(java.lang.Object attributeValue, java.lang.Object clone, java.lang.Object backup, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
buildBackupCloneForPartObject
in class DatabaseMapping
public void buildClone(java.lang.Object original, java.lang.Object clone, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
buildClone
in class DatabaseMapping
public void buildCloneFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow, org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, java.lang.Object clone, ObjectBuildingQuery sourceQuery, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
buildClone assumes the attribute value exists on the original and can simply be copied.
readFromRowIntoObject assumes that one is building an original.
Both of the above assumptions are false in this method, and actually attempts to do both at the same time.
Extract value from the row and set the attribute to this value in the working copy clone. In order to bypass the shared cache when in transaction a UnitOfWork must be able to populate working copies directly from the row.
buildCloneFromRow
in class DatabaseMapping
public abstract java.lang.Object buildCloneForPartObject(java.lang.Object attributeValue, java.lang.Object original, java.lang.Object clone, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, boolean isExisting)
buildCloneForPartObject
in class DatabaseMapping
public java.lang.Object clone()
clone
in class DatabaseMapping
public abstract java.lang.Object[] buildReferencesPKList(java.lang.Object entity, java.lang.Object attribute, org.eclipse.persistence.internal.sessions.AbstractSession session)
public boolean compareObjects(java.lang.Object firstObject, java.lang.Object secondObject, org.eclipse.persistence.internal.sessions.AbstractSession session)
compareObjects
in class DatabaseMapping
protected abstract boolean compareObjectsWithoutPrivateOwned(java.lang.Object first, java.lang.Object second, org.eclipse.persistence.internal.sessions.AbstractSession session)
protected abstract boolean compareObjectsWithPrivateOwned(java.lang.Object first, java.lang.Object second, org.eclipse.persistence.internal.sessions.AbstractSession session)
public void convertClassNamesToClasses(java.lang.ClassLoader classLoader)
convertClassNamesToClasses
in class DatabaseMapping
classLoader
- public org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder createUnitOfWorkValueHolder(ValueHolderInterface attributeValue, java.lang.Object original, java.lang.Object clone, org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, boolean buildDirectlyFromRow)
createUnitOfWorkValueHolder
in class DatabaseMapping
buildDirectlyFromRow
- indicates that we are building the clone directly
from a row as opposed to building the original from the row, putting it in
the shared cache, and then cloning the original.protected boolean dontDoMerge(java.lang.Object target, java.lang.Object source, org.eclipse.persistence.internal.sessions.MergeManager mergeManager)
public void dontUseBatchReading()
public void dontUseIndirection()
protected void extendPessimisticLockScopeInTargetQuery(ObjectLevelReadQuery targetQuery, ObjectBuildingQuery sourceQuery)
public void extendPessimisticLockScopeInSourceQuery(ObjectLevelReadQuery sourceQuery)
public java.lang.Object extractResultFromBatchQuery(DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractRecord Record, org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord argumentRow) throws QueryException
QueryException
public ObjectLevelReadQuery prepareNestedJoins(org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, ObjectBuildingQuery baseQuery, org.eclipse.persistence.internal.sessions.AbstractSession session)
protected void postPrepareNestedBatchQuery(ReadQuery batchQuery, ReadAllQuery query)
public ReadQuery prepareNestedBatchQuery(ReadAllQuery query)
protected java.util.Hashtable getBatchReadObjects(DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractSession session)
protected void setBatchReadObjects(java.util.Hashtable referenceObjectsByKey, DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractSession session)
public void fixObjectReferences(java.lang.Object object, java.util.Map objectDescriptors, java.util.Map processedObjects, ObjectLevelReadQuery query, RemoteSession session)
fixObjectReferences
in class DatabaseMapping
public java.lang.Object getAttributeValueFromObject(java.lang.Object object) throws DescriptorException
getAttributeValueFromObject
in class DatabaseMapping
DescriptorException
public java.lang.Object getAttributeValueWithClonedValueHolders(java.lang.Object object)
protected ReadQuery getExtendPessimisticLockScopeDedicatedQuery(org.eclipse.persistence.internal.sessions.AbstractSession session, short lockMode)
public org.eclipse.persistence.internal.indirection.IndirectionPolicy getIndirectionPolicy()
public Expression getJoinCriteria(org.eclipse.persistence.internal.expressions.QueryKeyExpression exp)
public java.lang.Object getObjectCorrespondingTo(java.lang.Object object, RemoteSession session, java.util.Map objectDescriptors, java.util.Map processedObjects, ObjectLevelReadQuery query)
getObjectCorrespondingTo
in class DatabaseMapping
public java.lang.Object getRealAttributeValueFromAttribute(java.lang.Object attributeValue, java.lang.Object object, org.eclipse.persistence.internal.sessions.AbstractSession session)
getRealAttributeValueFromAttribute
in class DatabaseMapping
public boolean isLazy()
isLazy
in class DatabaseMapping
public boolean isLockableMapping()
isLockableMapping
in class DatabaseMapping
public void instantiateAttribute(java.lang.Object object, org.eclipse.persistence.internal.sessions.AbstractSession session)
instantiateAttribute
in class DatabaseMapping
public java.lang.Class getReferenceClass()
public java.lang.String getReferenceClassName()
public ClassDescriptor getReferenceDescriptor()
getReferenceDescriptor
in class DatabaseMapping
public DatabaseMapping getRelationshipPartner()
getRelationshipPartner
in class DatabaseMapping
public java.lang.String getRelationshipPartnerAttributeName()
public Expression getSelectionCriteria()
OneToOneMapping.buildSelectionCriteria()
,
OneToManyMapping.buildSelectionCriteria()
public ReadQuery getSelectionQuery()
protected org.eclipse.persistence.internal.sessions.AbstractSession getTempSession()
public java.lang.Object getValueFromRemoteValueHolder(org.eclipse.persistence.internal.sessions.remote.RemoteValueHolder remoteValueHolder)
getValueFromRemoteValueHolder
in class DatabaseMapping
public boolean hasCustomSelectionQuery()
public void preInitialize(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
preInitialize
in class DatabaseMapping
DescriptorException
public void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
initialize
in class DatabaseMapping
DescriptorException
protected void initializeReferenceDescriptor(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
DescriptorException
protected void initializeSelectionQuery(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
DescriptorException
public boolean isAttributeValueInstantiated(java.lang.Object object)
public boolean isCascadeDetach()
public boolean isCascadePersist()
public boolean isCascadeMerge()
public boolean isCascadeRefresh()
public boolean isCascadeRemove()
public boolean isForeignReferenceMapping()
isForeignReferenceMapping
in class DatabaseMapping
public boolean isJoiningSupported()
isJoiningSupported
in class DatabaseMapping
public boolean isPrivateOwned()
isPrivateOwned
in class DatabaseMapping
public void iterate(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator)
iterate
in class DatabaseMapping
public abstract void iterateOnRealAttributeValue(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator, java.lang.Object realAttributeValue)
iterateOnRealAttributeValue
in class DatabaseMapping
public void mergeRemoteValueHolder(java.lang.Object clientSideDomainObject, java.lang.Object serverSideDomainObject, org.eclipse.persistence.internal.sessions.MergeManager mergeManager)
public void privateOwnedRelationship()
setIsPrivateOwned(boolean)
public void remoteInitialization(DistributedSession session)
remoteInitialization
in class DatabaseMapping
public java.util.Map replaceValueHoldersIn(java.lang.Object object, org.eclipse.persistence.internal.sessions.remote.RemoteSessionController controller)
replaceValueHoldersIn
in class DatabaseMapping
public boolean requiresTransientWeavedFields()
public void setCascadeAll(boolean value)
public void setCascadeDetach(boolean value)
public void setCascadePersist(boolean value)
public void setCascadeMerge(boolean value)
public void setCascadeRefresh(boolean value)
public void setCascadeRemove(boolean value)
public void setCustomSelectionQuery(ReadQuery query)
protected void setHasCustomSelectionQuery(boolean bool)
public void setForceInitializationOfSelectionCriteria(boolean bool)
public void setIndirectionPolicy(org.eclipse.persistence.internal.indirection.IndirectionPolicy indirectionPolicy)
public void setIsPrivateOwned(boolean isPrivateOwned)
public void setRealAttributeValueInObject(java.lang.Object object, java.lang.Object value) throws DescriptorException
setRealAttributeValueInObject
in class DatabaseMapping
DescriptorException
public void setReferenceClass(java.lang.Class referenceClass)
public void setReferenceClassName(java.lang.String referenceClassName)
protected void setReferenceDescriptor(ClassDescriptor aDescriptor)
public void setRelationshipPartner(DatabaseMapping mapping)
public void setRelationshipPartnerAttributeName(java.lang.String attributeName)
public void setRequiresTransientWeavedFields(boolean requiresTransientWeavedFields)
public void setSelectionCriteria(Expression anExpression)
protected void setSelectionQuery(ReadQuery aQuery)
public void setSelectionSQLString(java.lang.String sqlString)
public void setSelectionCall(Call call)
public void setShouldExtendPessimisticLockScope(boolean shouldExtend)
protected void setTempSession(org.eclipse.persistence.internal.sessions.AbstractSession session)
public void setUsesBatchReading(boolean usesBatchReading)
public void setUsesIndirection(boolean usesIndirection)
useBasicIndirection()
,
dontUseIndirection()
public boolean shouldExtendPessimisticLockScope()
public boolean shouldExtendPessimisticLockScopeInSourceQuery()
public boolean shouldExtendPessimisticLockScopeInTargetQuery()
public boolean shouldExtendPessimisticLockScopeInDedicatedQuery()
protected boolean shouldForceInitializationOfSelectionCriteria()
protected boolean shouldInitializeSelectionCriteria()
public boolean shouldMergeCascadeParts(org.eclipse.persistence.internal.sessions.MergeManager mergeManager)
protected boolean shouldMergeCascadeReference(org.eclipse.persistence.internal.sessions.MergeManager mergeManager)
protected boolean shouldObjectModifyCascadeToParts(ObjectLevelModifyQuery query)
public boolean shouldUseBatchReading()
public void useBasicIndirection()
public void useBatchReading()
public void useWeavedIndirection(java.lang.String setMethodName)
setMethodName
- is the name of the original set method for the mapping.public void useContainerIndirection(java.lang.Class containerClass)
public boolean usesIndirection()
public void setJoinFetch(int joinFetch)
ObjectLevelReadQuery.addJoinedAttribute(String)
,
ReadAllQuery.addBatchReadAttribute(String)
public int getJoinFetch()
public boolean isJoinFetched()
public boolean isInnerJoinFetched()
public boolean isOuterJoinFetched()
public void useInnerJoinFetch()
public void useOuterJoinFetch()
public void validateBeforeInitialization(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
validateBeforeInitialization
in class DatabaseMapping
DescriptorException
public abstract java.lang.Object valueFromPKList(java.lang.Object[] pks, org.eclipse.persistence.internal.sessions.AbstractSession session)
public java.lang.Object valueFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, ObjectBuildingQuery sourceQuery, org.eclipse.persistence.internal.sessions.AbstractSession executionSession) throws DatabaseException
valueFromRow
in class DatabaseMapping
DatabaseException
protected boolean shouldUseValueFromRowWithJoin(org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, ObjectBuildingQuery sourceQuery)
protected java.lang.Object valueFromRowInternalWithJoin(org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, ObjectBuildingQuery sourceQuery, org.eclipse.persistence.internal.sessions.AbstractSession executionSession) throws DatabaseException
DatabaseException
protected java.lang.Object valueFromRowInternal(org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, ObjectBuildingQuery sourceQuery, org.eclipse.persistence.internal.sessions.AbstractSession executionSession) throws DatabaseException
DatabaseException
protected boolean isExtendingPessimisticLockScope(ObjectBuildingQuery sourceQuery)
protected ReadQuery prepareHistoricalQuery(ReadQuery targetQuery, ObjectBuildingQuery sourceQuery, org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
public org.eclipse.persistence.internal.sessions.AbstractRecord trimRowForJoin(org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
public org.eclipse.persistence.internal.sessions.AbstractRecord trimRowForJoin(org.eclipse.persistence.internal.sessions.AbstractRecord row, java.lang.Object value, org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
protected ObjectLevelReadQuery prepareNestedJoinQueryClone(org.eclipse.persistence.internal.sessions.AbstractRecord row, java.util.List dataResults, org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, ObjectBuildingQuery sourceQuery, org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
|
EclipseLink 2.0.0, build 'v20091127-r5931' API Reference | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |