Package org.apache.cayenne.map
Class DbRelationship
java.lang.Object
org.apache.cayenne.map.Relationship
org.apache.cayenne.map.DbRelationship
- All Implemented Interfaces:
Serializable
,ConfigurationNode
,CayenneMapEntry
,XMLSerializable
A DbRelationship is a descriptor of a database inter-table relationship based
on one or more primary key/foreign key pairs.
- See Also:
-
Field Summary
Fields inherited from class org.apache.cayenne.map.Relationship
name, runtime, sourceEntity, targetEntityName, toMany
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescription<T> T
acceptVisitor
(ConfigurationNodeVisitor<T> visitor) void
Adds a join.Creates a new relationship with the same set of joins, but going in the opposite direction.void
encodeAsXML
(XMLEncoder encoder, ConfigurationNodeVisitor delegate) Prints itself as XML to the provided XMLEncoder.getJoins()
Returns a list of joins.Returns DbRelationship that is the opposite of this DbRelationship.Returns a Collection of source attributes.Returns relationship source entity.Returns a Collection of target attributes.Returns a target of this relationship.boolean
isFromPK()
boolean
Returns if relationship is mandatoryboolean
Returns a boolean indicating whether modifying a target of such relationship in any way will not change the underlying table row of the source.boolean
Returnstrue
if relationship from source to target points to dependent primary key.boolean
Returnstrue
if a methodisToDependentPK
of reverse relationship of this relationship returnstrue
.boolean
isToPK()
Returns true if the relationship points to at least one of the PK columns of the target entity.boolean
void
void
removeJoin
(DbJoin join) void
setJoins
(Collection<DbJoin> newJoins) void
setToDependentPK
(boolean toDependentPK) void
setToMany
(boolean toMany) Sets relationship multiplicity.srcFkSnapshotWithTargetSnapshot
(Map<String, Object> targetSnapshot) Creates a snapshot of foreign key attributes of a source object of this relationship based on a snapshot of a target.srcPkSnapshotWithTargetSnapshot
(Map<String, Object> targetSnapshot) Creates a snapshot of primary key attributes of a source object of this relationship based on a snapshot of a target.targetPkSnapshotWithSrcSnapshot
(Map<String, Object> srcSnapshot) Creates a snapshot of primary key attributes of a target object of this relationship based on a snapshot of a source.toString()
Overrides Object.toString() to return informative description.Methods inherited from class org.apache.cayenne.map.Relationship
getName, getParent, getTargetEntityName, isRuntime, isToMany, setName, setParent, setRuntime, setSourceEntity, setTargetEntityName, setTargetEntityName
-
Field Details
-
joins
-
toDependentPK
protected boolean toDependentPK
-
-
Constructor Details
-
DbRelationship
public DbRelationship() -
DbRelationship
-
-
Method Details
-
getSourceEntity
Description copied from class:Relationship
Returns relationship source entity.- Overrides:
getSourceEntity
in classRelationship
-
acceptVisitor
- Specified by:
acceptVisitor
in interfaceConfigurationNode
- Since:
- 3.1
-
encodeAsXML
Prints itself as XML to the provided XMLEncoder.- Specified by:
encodeAsXML
in interfaceXMLSerializable
- Since:
- 1.1
-
getTargetEntity
Returns a target of this relationship. If relationship is not attached to a DbEntity, and DbEntity doesn't have a namespace, and exception is thrown.- Specified by:
getTargetEntity
in classRelationship
-
getTargetAttributes
Returns a Collection of target attributes.- Since:
- 1.1
-
getSourceAttributes
Returns a Collection of source attributes.- Since:
- 1.1
-
createReverseRelationship
Creates a new relationship with the same set of joins, but going in the opposite direction.- Since:
- 1.0.5
-
getReverseRelationship
Returns DbRelationship that is the opposite of this DbRelationship. This means a relationship from this target entity to this source entity with the same join semantics. Returns null if no such relationship exists.- Specified by:
getReverseRelationship
in classRelationship
-
isToPK
public boolean isToPK()Returns true if the relationship points to at least one of the PK columns of the target entity.- Since:
- 1.1
-
isFromPK
public boolean isFromPK()- Since:
- 3.0
-
isToMasterPK
public boolean isToMasterPK()Returnstrue
if a methodisToDependentPK
of reverse relationship of this relationship returnstrue
. -
isSourceIndependentFromTargetChange
public boolean isSourceIndependentFromTargetChange()Returns a boolean indicating whether modifying a target of such relationship in any way will not change the underlying table row of the source.- Since:
- 4.0
-
isToDependentPK
public boolean isToDependentPK()Returnstrue
if relationship from source to target points to dependent primary key. Dependent PK is a primary key column of the destination table that is also a FK to the source column. -
setToDependentPK
public void setToDependentPK(boolean toDependentPK) -
isValidForDepPk
public boolean isValidForDepPk()- Since:
- 1.1
-
getJoins
Returns a list of joins. List is returned by reference, so any modifications of the list will affect this relationship. -
addJoin
Adds a join.- Since:
- 1.1
-
removeJoin
-
removeAllJoins
public void removeAllJoins() -
setJoins
-
targetPkSnapshotWithSrcSnapshot
Creates a snapshot of primary key attributes of a target object of this relationship based on a snapshot of a source. Only "to-one" relationships are supported. Returns null if relationship does not point to an object. Throws CayenneRuntimeException if relationship is "to many" or if snapshot is missing id components. -
srcFkSnapshotWithTargetSnapshot
Creates a snapshot of foreign key attributes of a source object of this relationship based on a snapshot of a target. Only "to-one" relationships are supported. Throws CayenneRuntimeException if relationship is "to many". -
srcPkSnapshotWithTargetSnapshot
Creates a snapshot of primary key attributes of a source object of this relationship based on a snapshot of a target. Only "to-many" relationships are supported. Throws CayenneRuntimeException if relationship is "to one". -
setToMany
public void setToMany(boolean toMany) Sets relationship multiplicity. -
isMandatory
public boolean isMandatory()Description copied from class:Relationship
Returns if relationship is mandatory- Specified by:
isMandatory
in classRelationship
-
toString
Description copied from class:Relationship
Overrides Object.toString() to return informative description.- Overrides:
toString
in classRelationship
-
getSourceEntityName
-