Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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

Direct Known Subclasses:
  DbRelationshipDetected

    public class DbRelationship

extends Relationship
implements ConfigurationNode

A DbRelationship is a descriptor of a database inter-table relationship based on one or more primary key/foreign key pairs.

See Also:
  Serialized Form

Field Summary
`protected List<DbJoin>` | `joins`
`protected boolean` | `toDependentPK`

Fields inherited from class org.apache.cayenne.map.Relationship
`name, runtime, sourceEntity, targetEntityName, toMany`

Constructor Summary
`DbRelationship()`
`DbRelationship(String name)`

Method Summary
`
`<T> T`
` | `acceptVisitor(ConfigurationNodeVisitor<T> visitor)`
`void` | `addJoin(DbJoin join)` Adds a join.
`DbRelationship` | `createReverseRelationship()` Creates a new relationship with the same set of joins, but going in the opposite direction.
`void` | `encodeAsXML(XMLEncoder encoder)` Prints itself as XML to the provided XMLEncoder.
`List<DbJoin>` | `getJoins()` Returns a list of joins.
`DbRelationship` | `getReverseRelationship()` Returns DbRelationship that is the opposite of this DbRelationship.
`Collection<DbAttribute>` | `getSourceAttributes()` Returns a Collection of source attributes.
`Collection<DbAttribute>` | `getTargetAttributes()` Returns a Collection of target attributes.
`Entity` | `getTargetEntity()` Returns a target of this relationship.
`boolean` | `isFromPK()`
`boolean` | `isMandatory()` Returns if relationship is mandatory
`boolean` | `isToDependentPK()` Returns `true` if relationship from source to target points to dependent primary key.
`boolean` | `isToMasterPK()` Returns `true` if a method `isToDependentPK` of reverse relationship of this relationship returns `true`.
`boolean` | `isToPK()` Returns true if the relationship points to at least one of the PK columns of the target entity.
`boolean` | `isValidForDepPk()`
`void` | `removeAllJoins()`
`void` | `removeJoin(DbJoin join)`
`void` | `setJoins(Collection<DbJoin> newJoins)`
`void` | `setToDependentPK(boolean toDependentPK)`
`void` | `setToMany(boolean toMany)` Sets relationship multiplicity.
`Map<String,Object>` | `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.
`Map<String,Object>` | `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.
`Map<String,Object>` | `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.

Methods inherited from class org.apache.cayenne.map.Relationship
`getName, getParent, getSourceEntity, getTargetEntityName, isRuntime, isToMany, setName, setParent, setRuntime, setSourceEntity, setTargetEntity, setTargetEntityName, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### joins

    protected List<DbJoin> joins

### toDependentPK

    protected boolean toDependentPK

Constructor Detail

### DbRelationship

    public DbRelationship()

### DbRelationship

    public DbRelationship(String name)

Method Detail

### acceptVisitor

    public <T> T acceptVisitor(ConfigurationNodeVisitor<T> visitor)

  Specified by:
    `acceptVisitor` in interface `ConfigurationNode`
  Since:
    3.1

### encodeAsXML

    public void encodeAsXML(XMLEncoder encoder)

  Prints itself as XML to the provided XMLEncoder.

  Specified by:
    `encodeAsXML` in interface `XMLSerializable`
  Since:
    1.1

### getTargetEntity

    public Entity 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 class `Relationship`

### getTargetAttributes

    public Collection<DbAttribute> getTargetAttributes()

  Returns a Collection of target attributes.

  Since:
    1.1

### getSourceAttributes

    public Collection<DbAttribute> getSourceAttributes()

  Returns a Collection of source attributes.

  Since:
    1.1

### createReverseRelationship

    public DbRelationship createReverseRelationship()

  Creates a new relationship with the same set of joins, but going in the opposite direction.

  Since:
    1.0.5

### getReverseRelationship

    public DbRelationship 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 class `Relationship`

### 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()

  Returns `true` if a method `isToDependentPK` of reverse relationship of this relationship returns `true`.

### isToDependentPK

    public boolean isToDependentPK()

  Returns `true` 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

    public List<DbJoin> getJoins()

  Returns a list of joins. List is returned by reference, so any modifications of the list will affect this relationship.

### addJoin

    public void addJoin(DbJoin join)

  Adds a join.

  Since:
    1.1

### removeJoin

    public void removeJoin(DbJoin join)

### removeAllJoins

    public void removeAllJoins()

### setJoins

    public void setJoins(Collection<DbJoin> newJoins)

### targetPkSnapshotWithSrcSnapshot

    public Map<String,Object> 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. 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

    public Map<String,Object> 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. Only "to-one" relationships are supported. Throws CayenneRuntimeException if relationship is "to many".

### srcPkSnapshotWithTargetSnapshot

    public Map<String,Object> 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. 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 class `Relationship`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2010 Apache Cayenne. All Rights Reserved.