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.
Constructor and Description |
---|
RelationTableMechanism() |
Modifier and Type | Method and Description |
---|---|
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.
|
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.
|
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.
|
boolean |
hasRelationTable()
INTERNAL:
Indicates whether the mechanism has relation table.
|
void |
initialize(org.eclipse.persistence.internal.sessions.AbstractSession session,
ForeignReferenceMapping mapping)
INTERNAL:
Initialize
|
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.
|
void |
setDeleteSQLString(java.lang.String sqlString)
PUBLIC:
Set the receiver's delete SQL string.
|
void |
setInsertCall(Call call)
PUBLIC:
Set the receiver's insert Call.
|
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.
|
public void addSourceRelationKeyField(org.eclipse.persistence.internal.helper.DatabaseField sourceRelationKeyField, org.eclipse.persistence.internal.helper.DatabaseField sourcePrimaryKeyField)
public void addSourceRelationKeyFieldName(java.lang.String sourceRelationKeyFieldName, java.lang.String sourcePrimaryKeyFieldName)
public void addTargetRelationKeyField(org.eclipse.persistence.internal.helper.DatabaseField targetRelationKeyField, org.eclipse.persistence.internal.helper.DatabaseField targetPrimaryKeyField)
public void addTargetRelationKeyFieldName(java.lang.String targetRelationKeyFieldName, java.lang.String targetPrimaryKeyFieldName)
public Expression buildSelectionCriteriaAndAddFieldsToQueryInternal(ForeignReferenceMapping mapping, Expression criteria, boolean shouldAddTargetFields, boolean shouldAddFieldsToQuery)
public java.lang.Object clone()
clone
in class java.lang.Object
public void setRelationTableLockingClause(ObjectLevelReadQuery targetQuery, ObjectBuildingQuery sourceQuery)
public org.eclipse.persistence.internal.helper.DatabaseTable getRelationTable()
public java.lang.String getRelationTableName()
public java.lang.String getRelationTableQualifiedName()
public java.util.Vector getSourceKeyFieldNames()
public void postPrepareNestedBatchQuery(ReadQuery batchQuery, ObjectLevelReadQuery query)
public java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> getSourceKeyFields()
public java.util.Vector getSourceRelationKeyFieldNames()
public java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> getSourceRelationKeyFields()
public java.util.Vector getTargetKeyFieldNames()
public org.eclipse.persistence.internal.helper.DatabaseField getRelationFieldForTargetField(org.eclipse.persistence.internal.helper.DatabaseField targetField)
public java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> getTargetKeyFields()
public java.util.Vector getTargetRelationKeyFieldNames()
public java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> getTargetRelationKeyFields()
public boolean hasRelationTable()
public void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping) throws DescriptorException
DescriptorException
public Expression joinRelationTableField(Expression expression, Expression baseExpression)
public void setCustomDeleteQuery(DataModifyQuery query)
public void setCustomInsertQuery(DataModifyQuery query)
public void setDeleteSQLString(java.lang.String sqlString)
public void setDeleteCall(Call call)
public void setInsertSQLString(java.lang.String sqlString)
public void setInsertCall(Call call)
public void setRelationTable(org.eclipse.persistence.internal.helper.DatabaseTable relationTable)
public void setRelationTableName(java.lang.String tableName)
public void setSessionName(java.lang.String name)
public void setSourceKeyFieldNames(java.util.Vector fieldNames)
public void setSourceKeyFields(java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> sourceKeyFields)
public void setSourceRelationKeyFieldName(java.lang.String sourceRelationKeyFieldName)
public void setSourceRelationKeyFieldNames(java.util.Vector fieldNames)
public void setSourceRelationKeyFields(java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> sourceRelationKeyFields)
public void setTargetKeyFieldNames(java.util.Vector fieldNames)
public void setTargetKeyFields(java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> targetKeyFields)
public void setTargetRelationKeyFieldName(java.lang.String targetRelationKeyFieldName)
public void setTargetRelationKeyFieldNames(java.util.Vector fieldNames)
public void setTargetRelationKeyFields(java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> targetRelationKeyFields)
public org.eclipse.persistence.internal.sessions.AbstractRecord buildRelationTableSourceRow(java.lang.Object sourceObject, org.eclipse.persistence.internal.sessions.AbstractSession session, ForeignReferenceMapping mapping)
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)
public org.eclipse.persistence.internal.sessions.AbstractRecord buildRelationTableSourceRow(org.eclipse.persistence.internal.sessions.AbstractRecord sourceRow)
public org.eclipse.persistence.internal.sessions.AbstractRecord addRelationTableSourceRow(org.eclipse.persistence.internal.sessions.AbstractRecord sourceRow, org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow)
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)
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)
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)