EclipseLink 2.2.0, build 'v20110202-r8913' API Reference

org.eclipse.persistence.mappings
Class RelationTableMechanism

java.lang.Object
  extended by org.eclipse.persistence.mappings.RelationTableMechanism
All Implemented Interfaces:
java.lang.Cloneable

public class RelationTableMechanism
extends java.lang.Object
implements java.lang.Cloneable

Purpose: Contains relation table functionality that was originally defined in ManyToManyMapping and now is shared with OneToOneMapping.


Field Summary
protected  DataModifyQuery deleteQuery
          Query used for single row deletion.
protected  boolean hasCustomDeleteQuery
           
protected  boolean hasCustomInsertQuery
           
protected  DataModifyQuery insertQuery
          Used for insertion.
protected  ReadQuery lockRelationTableQuery
           
protected  org.eclipse.persistence.internal.helper.DatabaseTable relationTable
          The intermediate relation table.
protected  java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> sourceKeyFields
          The field in the source table that corresponds to the key in the relation table
protected  java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> sourceRelationKeyFields
          The field in the intermediate table that corresponds to the key in the source table
protected  java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> targetKeyFields
          The field in the target table that corresponds to the key in the relation table
protected  java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> targetRelationKeyFields
          The field in the intermediate table that corresponds to the key in the target table
 
Constructor Summary
RelationTableMechanism()
           
 
Method Summary
 org.eclipse.persistence.internal.sessions.AbstractRecord addRelationTableSourceRow(org.eclipse.persistence.internal.sessions.AbstractRecord sourceRow, org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow)
          INTERNAL: Add to a row source relation fields with values extracted from the source row.
 org.eclipse.persistence.internal.sessions.AbstractRecord addRelationTableSourceRow(java.lang.Object sourceObject, org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow, ForeignReferenceMapping mapping)
          INTERNAL: Add to a row source relation fields with values extracted from the source object.
 org.eclipse.persistence.internal.sessions.AbstractRecord addRelationTableTargetRow(java.lang.Object targetObject, org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow, ForeignReferenceMapping mapping)
          INTERNAL: Add to a row target relation fields with values extracted from the target object.
 void addSourceRelationKeyField(org.eclipse.persistence.internal.helper.DatabaseField sourceRelationKeyField, org.eclipse.persistence.internal.helper.DatabaseField sourcePrimaryKeyField)
          PUBLIC: Add the fields in the intermediate table that corresponds to the primary key in the source table.
 void addSourceRelationKeyFieldName(java.lang.String sourceRelationKeyFieldName, java.lang.String sourcePrimaryKeyFieldName)
          PUBLIC: Add the fields in the intermediate table that corresponds to the primary key in the source table.
 void addTargetRelationKeyField(org.eclipse.persistence.internal.helper.DatabaseField targetRelationKeyField, org.eclipse.persistence.internal.helper.DatabaseField targetPrimaryKeyField)
          PUBLIC: Add the fields in the intermediate table that corresponds to the primary key in the target table.
 void addTargetRelationKeyFieldName(java.lang.String targetRelationKeyFieldName, java.lang.String targetPrimaryKeyFieldName)
          PUBLIC: Add the fields in the intermediate table that corresponds to the primary key in the target table.
 Expression buildBatchCriteria(ExpressionBuilder builder, ObjectLevelReadQuery query)
          INTERNAL: Return the selection criteria used to IN batch fetching.
 org.eclipse.persistence.internal.sessions.AbstractRecord buildRelationTableSourceAndTargetRow(org.eclipse.persistence.internal.sessions.AbstractRecord sourceRow, java.lang.Object targetObject, org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping)
          INTERNAL: Create a row that contains source relation fields with values extracted from the source row and target relation fields with values extracted from the target object.
 org.eclipse.persistence.internal.sessions.AbstractRecord buildRelationTableSourceAndTargetRow(java.lang.Object sourceObject, java.lang.Object targetObject, org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping)
          INTERNAL: Create a row that contains source relation fields with values extracted from the source object and target relation fields with values extracted from the target object.
 org.eclipse.persistence.internal.sessions.AbstractRecord buildRelationTableSourceRow(org.eclipse.persistence.internal.sessions.AbstractRecord sourceRow)
          INTERNAL: Create a row that contains source relation fields with values extracted from the source row.
 org.eclipse.persistence.internal.sessions.AbstractRecord buildRelationTableSourceRow(java.lang.Object sourceObject, org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping)
          INTERNAL: Create a row that contains source relation fields with values extracted from the source object.
 Expression buildSelectionCriteriaAndAddFieldsToQueryInternal(ForeignReferenceMapping mapping, Expression criteria, boolean shouldAddTargetFields, boolean shouldAddFieldsToQuery)
          INTERNAL: Build the selection criteria to join the source, relation, and target tables.
 java.lang.Object clone()
          INTERNAL: The mapping clones itself to create deep copy.
protected  java.util.Vector cloneFields(java.util.Vector fields)
          INTERNAL: Helper method to clone vector of fields (used in aggregate initialization cloning).
protected  void collectQueryParameters(java.util.Set<org.eclipse.persistence.internal.helper.DatabaseField> cacheFields)
          INTERNAL: This method is used to store the FK fields that can be cached that correspond to noncacheable mappings the FK field values will be used to re-issue the query when cloning the shared cache entity
protected  java.lang.Object extractBatchKeyFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: Extract the foreign key value from the source row.
protected  java.lang.Object extractKeyFromTargetRow(org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: Extract the source primary key value from the relation row.
protected  DataModifyQuery getDeleteQuery()
           
protected  DataModifyQuery getInsertQuery()
           
 org.eclipse.persistence.internal.helper.DatabaseField getRelationFieldForTargetField(org.eclipse.persistence.internal.helper.DatabaseField targetField)
          INTERNAL: Return the relation field for the target field.
 org.eclipse.persistence.internal.helper.DatabaseTable getRelationTable()
          INTERNAL: Return the relation table associated with the mapping.
 java.lang.String getRelationTableName()
          PUBLIC: Return the relation table name associated with the mapping.
 java.lang.String getRelationTableQualifiedName()
          PUBLIC: Return the relation table qualified name associated with the mapping.
 java.util.Vector getSourceKeyFieldNames()
          PUBLIC: Return the source key field names associated with the mapping.
 java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> getSourceKeyFields()
          INTERNAL: Return all the source key fields associated with the mapping.
 java.util.Vector getSourceRelationKeyFieldNames()
          PUBLIC: Return the source relation key field names associated with the mapping.
 java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> getSourceRelationKeyFields()
          INTERNAL: Return all the source relation key fields associated with the mapping.
 java.util.Vector getTargetKeyFieldNames()
          PUBLIC: Return the target key field names associated with the mapping.
 java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> getTargetKeyFields()
          INTERNAL: Return all the target keys associated with the mapping.
 java.util.Vector getTargetRelationKeyFieldNames()
          PUBLIC: Return the target relation key field names associated with the mapping.
 java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> getTargetRelationKeyFields()
          INTERNAL: Return all the target relation key fields associated with the mapping.
protected  boolean hasCustomDeleteQuery()
           
protected  boolean hasCustomInsertQuery()
           
 boolean hasRelationTable()
          INTERNAL: Indicates whether the mechanism has relation table.
 void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping)
          INTERNAL: Initialize
protected  void initializeDeleteQuery(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping)
          INTERNAL: Initialize delete query.
protected  void initializeExtendPessipisticLockScope(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping)
          INTERNAL: Initialize extendPessimisticLockeScope and lockRelationTableQuery (if required).
protected  void initializeInsertQuery(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping)
          INTERNAL: Initialize insert query.
protected  void initializeLockRelationTableQuery(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping, Expression startCriteria)
          INTERNAL: Initialize lockRelationTableQuery.
protected  void initializeRelationTable(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping)
          INTERNAL: Set the table qualifier on the relation table if required
protected  void initializeSourceKeys(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping)
          INTERNAL: All the source key field names are converted to DatabaseField and stored.
protected  void initializeSourceKeysWithDefaults(org.eclipse.persistence.internal.sessions.AbstractSession session, DatabaseMapping mapping)
          INTERNAL: If a user does not specify the source key then the primary keys of the source table are used.
protected  void initializeSourceRelationKeys(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping)
          INTERNAL: All the source relation key field names are converted to DatabaseField and stored.
protected  void initializeTargetKeys(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping)
          INTERNAL: All the target key field names are converted to DatabaseField and stored.
protected  void initializeTargetKeysWithDefaults(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping)
          INTERNAL: If a user does not specify the target key then the primary keys of the target table are used.
protected  void initializeTargetRelationKeys(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping)
          INTERNAL: All the target relation key field names are converted to DatabaseField and stored.
protected  boolean isSingleSourceRelationKeySpecified()
          INTERNAL: Checks if a single source key was specified.
protected  boolean isSingleTargetRelationKeySpecified()
          INTERNAL: Checks if a single target key was specified.
 Expression joinRelationTableField(Expression expression, Expression baseExpression)
          INTERNAL: Adds to the passed expression a single relation table field joined to source field.
 void postPrepareNestedBatchQuery(ReadQuery batchQuery, ObjectLevelReadQuery query)
          INTERNAL: Add the addition join fields to the batch query.
 void setCustomDeleteQuery(DataModifyQuery query)
          PUBLIC: The default delete query for mapping can be overridden by specifying the new query.
 void setCustomInsertQuery(DataModifyQuery query)
          PUBLIC: The default insert query for mapping can be overridden by specifying the new query.
 void setDeleteCall(Call call)
          PUBLIC: Set the receiver's delete Call.
protected  void setDeleteQuery(DataModifyQuery deleteQuery)
           
 void setDeleteSQLString(java.lang.String sqlString)
          PUBLIC: Set the receiver's delete SQL string.
protected  void setHasCustomDeleteQuery(boolean hasCustomDeleteQuery)
           
protected  void setHasCustomInsertQuery(boolean bool)
           
 void setInsertCall(Call call)
          PUBLIC: Set the receiver's insert Call.
protected  void setInsertQuery(DataModifyQuery insertQuery)
           
 void setInsertSQLString(java.lang.String sqlString)
          PUBLIC: Set the receiver's insert SQL string.
 void setRelationTable(org.eclipse.persistence.internal.helper.DatabaseTable relationTable)
          PUBLIC: Set the relational table.
 void setRelationTableLockingClause(ObjectLevelReadQuery targetQuery, ObjectBuildingQuery sourceQuery)
          INTERNAL: Return relation table locking clause.
 void setRelationTableName(java.lang.String tableName)
          PUBLIC: Set the name of the relational table.
 void setSessionName(java.lang.String name)
          PUBLIC: Set the name of the session to execute the mapping's queries under.
 void setSourceKeyFieldNames(java.util.Vector fieldNames)
          PUBLIC: Set the source key field names associated with the mapping.
 void setSourceKeyFields(java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> sourceKeyFields)
          INTERNAL: Set the source fields.
 void setSourceRelationKeyFieldName(java.lang.String sourceRelationKeyFieldName)
          PUBLIC: Set the source key field in the relation table.
 void setSourceRelationKeyFieldNames(java.util.Vector fieldNames)
          PUBLIC: Set the source relation key field names associated with the mapping.
 void setSourceRelationKeyFields(java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> sourceRelationKeyFields)
          INTERNAL: Set the source fields.
 void setTargetKeyFieldNames(java.util.Vector fieldNames)
          INTERNAL: Set the target key field names associated with the mapping.
 void setTargetKeyFields(java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> targetKeyFields)
          INTERNAL: Set the target fields.
 void setTargetRelationKeyFieldName(java.lang.String targetRelationKeyFieldName)
          PUBLIC: Set the target key field in the relation table.
 void setTargetRelationKeyFieldNames(java.util.Vector fieldNames)
          INTERNAL: Set the target relation key field names associated with the mapping.
 void setTargetRelationKeyFields(java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> targetRelationKeyFields)
          INTERNAL: Set the target fields.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

relationTable

protected org.eclipse.persistence.internal.helper.DatabaseTable relationTable
The intermediate relation table.


sourceKeyFields

protected java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> sourceKeyFields
The field in the source table that corresponds to the key in the relation table


targetKeyFields

protected java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> targetKeyFields
The field in the target table that corresponds to the key in the relation table


sourceRelationKeyFields

protected java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> sourceRelationKeyFields
The field in the intermediate table that corresponds to the key in the source table


targetRelationKeyFields

protected java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> targetRelationKeyFields
The field in the intermediate table that corresponds to the key in the target table


deleteQuery

protected DataModifyQuery deleteQuery
Query used for single row deletion.


hasCustomDeleteQuery

protected boolean hasCustomDeleteQuery

insertQuery

protected DataModifyQuery insertQuery
Used for insertion.


hasCustomInsertQuery

protected boolean hasCustomInsertQuery

lockRelationTableQuery

protected ReadQuery lockRelationTableQuery
Constructor Detail

RelationTableMechanism

public RelationTableMechanism()
Method Detail

addSourceRelationKeyField

public void addSourceRelationKeyField(org.eclipse.persistence.internal.helper.DatabaseField sourceRelationKeyField,
                                      org.eclipse.persistence.internal.helper.DatabaseField sourcePrimaryKeyField)
PUBLIC: Add the fields in the intermediate table that corresponds to the primary key in the source table. This method is used if the keys are composite.


addSourceRelationKeyFieldName

public void addSourceRelationKeyFieldName(java.lang.String sourceRelationKeyFieldName,
                                          java.lang.String sourcePrimaryKeyFieldName)
PUBLIC: Add the fields in the intermediate table that corresponds to the primary key in the source table. This method is used if the keys are composite.


addTargetRelationKeyField

public void addTargetRelationKeyField(org.eclipse.persistence.internal.helper.DatabaseField targetRelationKeyField,
                                      org.eclipse.persistence.internal.helper.DatabaseField targetPrimaryKeyField)
PUBLIC: Add the fields in the intermediate table that corresponds to the primary key in the target table. This method is used if the keys are composite.


addTargetRelationKeyFieldName

public void addTargetRelationKeyFieldName(java.lang.String targetRelationKeyFieldName,
                                          java.lang.String targetPrimaryKeyFieldName)
PUBLIC: Add the fields in the intermediate table that corresponds to the primary key in the target table. This method is used if the keys are composite.


buildSelectionCriteriaAndAddFieldsToQueryInternal

public Expression buildSelectionCriteriaAndAddFieldsToQueryInternal(ForeignReferenceMapping mapping,
                                                                    Expression criteria,
                                                                    boolean shouldAddTargetFields,
                                                                    boolean shouldAddFieldsToQuery)
INTERNAL: Build the selection criteria to join the source, relation, and target tables.


collectQueryParameters

protected void collectQueryParameters(java.util.Set<org.eclipse.persistence.internal.helper.DatabaseField> cacheFields)
INTERNAL: This method is used to store the FK fields that can be cached that correspond to noncacheable mappings the FK field values will be used to re-issue the query when cloning the shared cache entity


clone

public java.lang.Object clone()
INTERNAL: The mapping clones itself to create deep copy.

Overrides:
clone in class java.lang.Object

cloneFields

protected java.util.Vector cloneFields(java.util.Vector fields)
INTERNAL: Helper method to clone vector of fields (used in aggregate initialization cloning).


getDeleteQuery

protected DataModifyQuery getDeleteQuery()

setRelationTableLockingClause

public void setRelationTableLockingClause(ObjectLevelReadQuery targetQuery,
                                          ObjectBuildingQuery sourceQuery)
INTERNAL: Return relation table locking clause.


getInsertQuery

protected DataModifyQuery getInsertQuery()

getRelationTable

public org.eclipse.persistence.internal.helper.DatabaseTable getRelationTable()
INTERNAL: Return the relation table associated with the mapping.


getRelationTableName

public java.lang.String getRelationTableName()
PUBLIC: Return the relation table name associated with the mapping.


getRelationTableQualifiedName

public java.lang.String getRelationTableQualifiedName()
PUBLIC: Return the relation table qualified name associated with the mapping.


getSourceKeyFieldNames

public java.util.Vector getSourceKeyFieldNames()
PUBLIC: Return the source key field names associated with the mapping. These are in-order with the sourceRelationKeyFieldNames.


buildBatchCriteria

public Expression buildBatchCriteria(ExpressionBuilder builder,
                                     ObjectLevelReadQuery query)
INTERNAL: Return the selection criteria used to IN batch fetching.


postPrepareNestedBatchQuery

public void postPrepareNestedBatchQuery(ReadQuery batchQuery,
                                        ObjectLevelReadQuery query)
INTERNAL: Add the addition join fields to the batch query.


extractBatchKeyFromRow

protected java.lang.Object extractBatchKeyFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord row,
                                                  org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Extract the foreign key value from the source row.


extractKeyFromTargetRow

protected java.lang.Object extractKeyFromTargetRow(org.eclipse.persistence.internal.sessions.AbstractRecord row,
                                                   org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Extract the source primary key value from the relation row. Used for batch reading, most following same order and fields as in the mapping.


getSourceKeyFields

public java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> getSourceKeyFields()
INTERNAL: Return all the source key fields associated with the mapping.


getSourceRelationKeyFieldNames

public java.util.Vector getSourceRelationKeyFieldNames()
PUBLIC: Return the source relation key field names associated with the mapping. These are in-order with the sourceKeyFieldNames.


getSourceRelationKeyFields

public java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> getSourceRelationKeyFields()
INTERNAL: Return all the source relation key fields associated with the mapping.


getTargetKeyFieldNames

public java.util.Vector getTargetKeyFieldNames()
PUBLIC: Return the target key field names associated with the mapping. These are in-order with the targetRelationKeyFieldNames.


getRelationFieldForTargetField

public org.eclipse.persistence.internal.helper.DatabaseField getRelationFieldForTargetField(org.eclipse.persistence.internal.helper.DatabaseField targetField)
INTERNAL: Return the relation field for the target field.


getTargetKeyFields

public java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> getTargetKeyFields()
INTERNAL: Return all the target keys associated with the mapping.


getTargetRelationKeyFieldNames

public java.util.Vector getTargetRelationKeyFieldNames()
PUBLIC: Return the target relation key field names associated with the mapping. These are in-order with the targetKeyFieldNames.


getTargetRelationKeyFields

public java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> getTargetRelationKeyFields()
INTERNAL: Return all the target relation key fields associated with the mapping.


hasCustomDeleteQuery

protected boolean hasCustomDeleteQuery()

hasCustomInsertQuery

protected boolean hasCustomInsertQuery()

hasRelationTable

public boolean hasRelationTable()
INTERNAL: Indicates whether the mechanism has relation table.


initialize

public void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session,
                       ForeignReferenceMapping mapping)
                throws DescriptorException
INTERNAL: Initialize

Throws:
DescriptorException

initializeDeleteQuery

protected void initializeDeleteQuery(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                     ForeignReferenceMapping mapping)
INTERNAL: Initialize delete query. This query is used to delete a specific row from the join table in uow, given the objects on both sides of the relation.


initializeExtendPessipisticLockScope

protected void initializeExtendPessipisticLockScope(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                    ForeignReferenceMapping mapping)
INTERNAL: Initialize extendPessimisticLockeScope and lockRelationTableQuery (if required).


initializeInsertQuery

protected void initializeInsertQuery(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                     ForeignReferenceMapping mapping)
INTERNAL: Initialize insert query. This query is used to insert the collection of objects into the relation table.


initializeLockRelationTableQuery

protected void initializeLockRelationTableQuery(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                ForeignReferenceMapping mapping,
                                                Expression startCriteria)
INTERNAL: Initialize lockRelationTableQuery.


initializeRelationTable

protected void initializeRelationTable(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                       ForeignReferenceMapping mapping)
                                throws DescriptorException
INTERNAL: Set the table qualifier on the relation table if required

Throws:
DescriptorException

initializeSourceKeys

protected void initializeSourceKeys(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                    ForeignReferenceMapping mapping)
INTERNAL: All the source key field names are converted to DatabaseField and stored.


initializeSourceKeysWithDefaults

protected void initializeSourceKeysWithDefaults(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                DatabaseMapping mapping)
INTERNAL: If a user does not specify the source key then the primary keys of the source table are used.


initializeSourceRelationKeys

protected void initializeSourceRelationKeys(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                            ForeignReferenceMapping mapping)
                                     throws DescriptorException
INTERNAL: All the source relation key field names are converted to DatabaseField and stored.

Throws:
DescriptorException

initializeTargetKeys

protected void initializeTargetKeys(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                    ForeignReferenceMapping mapping)
INTERNAL: All the target key field names are converted to DatabaseField and stored.


initializeTargetKeysWithDefaults

protected void initializeTargetKeysWithDefaults(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                ForeignReferenceMapping mapping)
INTERNAL: If a user does not specify the target key then the primary keys of the target table are used.


initializeTargetRelationKeys

protected void initializeTargetRelationKeys(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                            ForeignReferenceMapping mapping)
INTERNAL: All the target relation key field names are converted to DatabaseField and stored.


isSingleSourceRelationKeySpecified

protected boolean isSingleSourceRelationKeySpecified()
INTERNAL: Checks if a single source key was specified.


isSingleTargetRelationKeySpecified

protected boolean isSingleTargetRelationKeySpecified()
INTERNAL: Checks if a single target key was specified.


joinRelationTableField

public Expression joinRelationTableField(Expression expression,
                                         Expression baseExpression)
INTERNAL: Adds to the passed expression a single relation table field joined to source field. Used to extend pessimistic locking clause in source query.


setCustomDeleteQuery

public void setCustomDeleteQuery(DataModifyQuery query)
PUBLIC: The default delete query for mapping can be overridden by specifying the new query. This query must delete the row from the M-M join table.


setCustomInsertQuery

public void setCustomInsertQuery(DataModifyQuery query)
PUBLIC: The default insert query for mapping can be overridden by specifying the new query. This query must insert the row into the M-M join table.


setDeleteQuery

protected void setDeleteQuery(DataModifyQuery deleteQuery)

setDeleteSQLString

public void setDeleteSQLString(java.lang.String sqlString)
PUBLIC: Set the receiver's delete SQL string. This allows the user to override the SQL generated by TOPLink, with there own SQL or procedure call. The arguments are translated from the fields of the source row, through replacing the field names marked by '#' with the values for those fields. This is used to delete a single entry from the M-M join table. Example, 'delete from PROJ_EMP where PROJ_ID = #PROJ_ID AND EMP_ID = #EMP_ID'.


setDeleteCall

public void setDeleteCall(Call call)
PUBLIC: Set the receiver's delete Call. This allows the user to override the SQL generated by TOPLink, with there own SQL or procedure call. The arguments are translated from the fields of the source row. This is used to delete a single entry from the M-M join table. Example, 'new SQLCall("delete from PROJ_EMP where PROJ_ID = #PROJ_ID AND EMP_ID = #EMP_ID")'.


setHasCustomDeleteQuery

protected void setHasCustomDeleteQuery(boolean hasCustomDeleteQuery)

setHasCustomInsertQuery

protected void setHasCustomInsertQuery(boolean bool)

setInsertQuery

protected void setInsertQuery(DataModifyQuery insertQuery)

setInsertSQLString

public void setInsertSQLString(java.lang.String sqlString)
PUBLIC: Set the receiver's insert SQL string. This allows the user to override the SQL generated by TOPLink, with there own SQL or procedure call. The arguments are translated from the fields of the source row, through replacing the field names marked by '#' with the values for those fields. This is used to insert an entry into the M-M join table. Example, 'insert into PROJ_EMP (EMP_ID, PROJ_ID) values (#EMP_ID, #PROJ_ID)'.


setInsertCall

public void setInsertCall(Call call)
PUBLIC: Set the receiver's insert Call. This allows the user to override the SQL generated by TOPLink, with there own SQL or procedure call. The arguments are translated from the fields of the source row. This is used to insert an entry into the M-M join table. Example, 'new SQLCall("insert into PROJ_EMP (EMP_ID, PROJ_ID) values (#EMP_ID, #PROJ_ID)")'.


setRelationTable

public void setRelationTable(org.eclipse.persistence.internal.helper.DatabaseTable relationTable)
PUBLIC: Set the relational table. This is the join table that store both the source and target primary keys.


setRelationTableName

public void setRelationTableName(java.lang.String tableName)
PUBLIC: Set the name of the relational table. This is the join table that store both the source and target primary keys.


setSessionName

public void setSessionName(java.lang.String name)
PUBLIC: Set the name of the session to execute the mapping's queries under. This can be used by the session broker to override the default session to be used for the target class.


setSourceKeyFieldNames

public void setSourceKeyFieldNames(java.util.Vector fieldNames)
PUBLIC: Set the source key field names associated with the mapping. These must be in-order with the sourceRelationKeyFieldNames.


setSourceKeyFields

public void setSourceKeyFields(java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> sourceKeyFields)
INTERNAL: Set the source fields.


setSourceRelationKeyFieldName

public void setSourceRelationKeyFieldName(java.lang.String sourceRelationKeyFieldName)
PUBLIC: Set the source key field in the relation table. This is the name of the foreign key in the relation table to the source's primary key field. This method is used if the source primary key is a singleton only.


setSourceRelationKeyFieldNames

public void setSourceRelationKeyFieldNames(java.util.Vector fieldNames)
PUBLIC: Set the source relation key field names associated with the mapping. These must be in-order with the sourceKeyFieldNames.


setSourceRelationKeyFields

public void setSourceRelationKeyFields(java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> sourceRelationKeyFields)
INTERNAL: Set the source fields.


setTargetKeyFieldNames

public void setTargetKeyFieldNames(java.util.Vector fieldNames)
INTERNAL: Set the target key field names associated with the mapping. These must be in-order with the targetRelationKeyFieldNames.


setTargetKeyFields

public void setTargetKeyFields(java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> targetKeyFields)
INTERNAL: Set the target fields.


setTargetRelationKeyFieldName

public void setTargetRelationKeyFieldName(java.lang.String targetRelationKeyFieldName)
PUBLIC: Set the target key field in the relation table. This is the name of the foreign key in the relation table to the target's primary key field. This method is used if the target's primary key is a singleton only.


setTargetRelationKeyFieldNames

public void setTargetRelationKeyFieldNames(java.util.Vector fieldNames)
INTERNAL: Set the target relation key field names associated with the mapping. These must be in-order with the targetKeyFieldNames.


setTargetRelationKeyFields

public void setTargetRelationKeyFields(java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> targetRelationKeyFields)
INTERNAL: Set the target fields.


buildRelationTableSourceRow

public org.eclipse.persistence.internal.sessions.AbstractRecord buildRelationTableSourceRow(java.lang.Object sourceObject,
                                                                                            org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                                                            ForeignReferenceMapping mapping)
INTERNAL: Create a row that contains source relation fields with values extracted from the source object.


addRelationTableSourceRow

public org.eclipse.persistence.internal.sessions.AbstractRecord addRelationTableSourceRow(java.lang.Object sourceObject,
                                                                                          org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                                                          org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
                                                                                          ForeignReferenceMapping mapping)
INTERNAL: Add to a row source relation fields with values extracted from the source object.


buildRelationTableSourceRow

public org.eclipse.persistence.internal.sessions.AbstractRecord buildRelationTableSourceRow(org.eclipse.persistence.internal.sessions.AbstractRecord sourceRow)
INTERNAL: Create a row that contains source relation fields with values extracted from the source row.


addRelationTableSourceRow

public org.eclipse.persistence.internal.sessions.AbstractRecord addRelationTableSourceRow(org.eclipse.persistence.internal.sessions.AbstractRecord sourceRow,
                                                                                          org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow)
INTERNAL: Add to a row source relation fields with values extracted from the source row.


addRelationTableTargetRow

public org.eclipse.persistence.internal.sessions.AbstractRecord addRelationTableTargetRow(java.lang.Object targetObject,
                                                                                          org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                                                          org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
                                                                                          ForeignReferenceMapping mapping)
INTERNAL: Add to a row target relation fields with values extracted from the target object.


buildRelationTableSourceAndTargetRow

public org.eclipse.persistence.internal.sessions.AbstractRecord buildRelationTableSourceAndTargetRow(java.lang.Object sourceObject,
                                                                                                     java.lang.Object targetObject,
                                                                                                     org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                                                                     ForeignReferenceMapping mapping)
INTERNAL: Create a row that contains source relation fields with values extracted from the source object and target relation fields with values extracted from the target object.


buildRelationTableSourceAndTargetRow

public org.eclipse.persistence.internal.sessions.AbstractRecord buildRelationTableSourceAndTargetRow(org.eclipse.persistence.internal.sessions.AbstractRecord sourceRow,
                                                                                                     java.lang.Object targetObject,
                                                                                                     org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                                                                     ForeignReferenceMapping mapping)
INTERNAL: Create a row that contains source relation fields with values extracted from the source row and target relation fields with values extracted from the target object.


EclipseLink 2.2.0, build 'v20110202-r8913' API Reference