Package org.apache.cayenne.exp.property

## Interface RelationshipProperty<E>

- All Superinterfaces:
    `PathProperty<E>`, `Property<E>`
  All Known Implementing Classes:
    `CollectionProperty`, `EntityProperty`, `ListProperty`, `MapProperty`, `Property`, `SetProperty`

      public interface RelationshipProperty<E>
      extends PathProperty<E>

  Interface (or "Trait") that provides basic functionality for all types of relationships.

  Provides "dot", prefetch and "outer" functionality.

  Since:
    4.2
  See Also:
    `org.apache.cayenne.exp.property`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `default PrefetchTreeNode` | `disjoint()` | Returns a prefetch tree that follows this property path, potentially spanning a number of phantom nodes, and having a single leaf with "disjoint" prefetch semantics.
    `default PrefetchTreeNode` | `disjointById()` | Returns a prefetch tree that follows this property path, potentially spanning a number of phantom nodes, and having a single leaf with "disjoint by id" prefetch semantics.
    `default <T> BaseIdProperty<T>` | `dot​(BaseIdProperty<T> property)` |
    `default <T extends EmbeddableObject> EmbeddableProperty<T>` | `dot​(EmbeddableProperty<T> property)` | Constructs a new property path by appending the argument to the existing property separated by a dot.
    `default <T extends Persistent> EntityProperty<T>` | `dot​(EntityProperty<T> property)` | Constructs a new property path by appending the argument to the existing property separated by a dot.
    `default <T extends Persistent> ListProperty<T>` | `dot​(ListProperty<T> property)` | Constructs a new property path by appending the argument to the existing property separated by a dot.
    `default <K,​V extends Persistent> MapProperty<K,​V>` | `dot​(MapProperty<K,​V> property)` | Constructs a new property path by appending the argument to the existing property separated by a dot.
    `default <T extends Number> NumericIdProperty<T>` | `dot​(NumericIdProperty<T> property)` |
    `default <T extends Persistent> SetProperty<T>` | `dot​(SetProperty<T> property)` | Constructs a new property path by appending the argument to the existing property separated by a dot.
    `default PrefetchTreeNode` | `joint()` | Returns a prefetch tree that follows this property path, potentially spanning a number of phantom nodes, and having a single leaf with "joint" prefetch semantics.
    `BaseProperty<E>` | `outer()` | Returns a version of this property that represents an OUTER join.

    - ### Methods inherited from interface org.apache.cayenne.exp.property.PathProperty

      `dot, dot, dot, dot, dot`

    - ### Methods inherited from interface org.apache.cayenne.exp.property.Property

      `getAlias, getExpression, getName, getType`

- - ### Method Detail

    - #### outer

          BaseProperty<E> outer()

      Returns a version of this property that represents an OUTER join. It is up to caller to ensure that the property corresponds to a relationship, as "outer" attributes make no sense.

    - #### joint

          default PrefetchTreeNode joint()

      Returns a prefetch tree that follows this property path, potentially spanning a number of phantom nodes, and having a single leaf with "joint" prefetch semantics.

    - #### disjoint

          default PrefetchTreeNode disjoint()

      Returns a prefetch tree that follows this property path, potentially spanning a number of phantom nodes, and having a single leaf with "disjoint" prefetch semantics.

    - #### disjointById

          default PrefetchTreeNode disjointById()

      Returns a prefetch tree that follows this property path, potentially spanning a number of phantom nodes, and having a single leaf with "disjoint by id" prefetch semantics.

    - #### dot

          default <T> BaseIdProperty<T> dot​(BaseIdProperty<T> property)

    - #### dot

          default <T extends Number> NumericIdProperty<T> dot​(NumericIdProperty<T> property)

    - #### dot

          default <T extends Persistent> EntityProperty<T> dot​(EntityProperty<T> property)

      Constructs a new property path by appending the argument to the existing property separated by a dot.
      Parameters:
        `property` - to append to path
      Returns:
        a newly created Property object.

    - #### dot

          default <T extends Persistent> ListProperty<T> dot​(ListProperty<T> property)

      Constructs a new property path by appending the argument to the existing property separated by a dot.
      Parameters:
        `property` - to append to path
      Returns:
        a newly created Property object.

    - #### dot

          default <T extends Persistent> SetProperty<T> dot​(SetProperty<T> property)

      Constructs a new property path by appending the argument to the existing property separated by a dot.
      Parameters:
        `property` - to append to path
      Returns:
        a newly created Property object.

    - #### dot

          default <K,​V extends Persistent> MapProperty<K,​V> dot​(MapProperty<K,​V> property)

      Constructs a new property path by appending the argument to the existing property separated by a dot.
      Parameters:
        `property` - to append to path
      Returns:
        a newly created Property object.

    - #### dot

          default <T extends EmbeddableObject> EmbeddableProperty<T> dot​(EmbeddableProperty<T> property)

      Constructs a new property path by appending the argument to the existing property separated by a dot.
      Parameters:
        `property` - to append to path
      Returns:
        a newly created Property object.