Package org.eclipse.persistence.mappings
Class RelationTableMechanism
- java.lang.Object
-
- org.eclipse.persistence.mappings.RelationTableMechanism
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
public class RelationTableMechanism extends java.lang.Object implements java.lang.Cloneable, java.io.Serializable
Purpose: Contains relation table functionality that was originally defined in ManyToManyMapping and now is shared with OneToOneMapping.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description 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 tableprotected java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField>
sourceRelationKeyFields
The field in the intermediate table that corresponds to the key in the source tableprotected java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField>
targetKeyFields
The field in the target table that corresponds to the key in the relation tableprotected 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
Constructors Constructor Description RelationTableMechanism()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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
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
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.protected Expression
buildBatchCriteria(ExpressionBuilder builder, ObjectLevelReadQuery query)
INTERNAL: Return the selection criteria used to IN batch fetching.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
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
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.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.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 entityprotected 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: Initializeprotected 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 requiredprotected void
initializeSourceKeys(ForeignReferenceMapping mapping)
INTERNAL: All the source key field names are converted to DatabaseField and stored.protected void
initializeSourceKeysWithDefaults(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(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(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.
-
-
-
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
-
-
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 classjava.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
protected 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(ForeignReferenceMapping mapping)
INTERNAL: All the source key field names are converted to DatabaseField and stored.
-
initializeSourceKeysWithDefaults
protected void initializeSourceKeysWithDefaults(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(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(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.
-
-