com.holonplatform.core.datastore.relational

## Interface RelationalTarget<T>

- Type Parameters:
    `T` - Path type
  All Superinterfaces:
    Aliasable<RelationalTarget<T>>, Aliasable.AliasablePath<T,RelationalTarget<T>>, DataTarget<T>, Expression, Path<T>, Path.FinalPath<T>, Serializable

      public interface RelationalTarget<T>
      extends DataTarget<T>, Aliasable.AliasablePath<T,RelationalTarget<T>>

  A `DataTarget` which can be use with relational `Datastore`s.

  Supports alias name definition through the `Aliasable` interface.

  Supports join definition with other `DataTarget`s using the `join(DataTarget, com.holonplatform.core.datastore.relational.Join.JoinType)` method.

  Since:
    5.0.0

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.holonplatform.core.datastore.DataTarget

      `DataTarget.DataTargetResolver<T extends DataTarget>, DataTarget.DataTargetSupport<C extends DataTarget.DataTargetSupport<C>>`

    - ### Nested classes/interfaces inherited from interface com.holonplatform.core.Path

      `Path.Builder<T,B extends Path.Builder<T,B>>, Path.FinalPath<T>, Path.PathBuilder<T>`

    - ### Nested classes/interfaces inherited from interface com.holonplatform.core.Expression

      `Expression.ExpressionResolverFunction<E extends Expression,R extends Expression>, Expression.InvalidExpressionException`

    - ### Nested classes/interfaces inherited from interface com.holonplatform.core.datastore.relational.Aliasable

      `Aliasable.AliasablePath<T,C extends Aliasable.AliasablePath<T,C>>`

  - ### Field Summary

    - ### Fields inherited from interface com.holonplatform.core.Path

      `PATH_HIERARCHY_SEPARATOR`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `Collection<Join<?>>` | `getJoins()` Get the defined joins.
    `default Join.JoinBuilder<T>` | `innerJoin(DataTarget<?> target)` Add a `Join.JoinType.INNER` join clause using given `target`.
    `Join.JoinBuilder<T>` | `join(DataTarget<?> target, Join.JoinType type)` Add a join clause using given `target` as join destination.
    `default Join.JoinBuilder<T>` | `leftJoin(DataTarget<?> target)` Add a `Join.JoinType.LEFT` join clause using given `target`.
    `static <T> RelationalTarget<T>` | `of(DataTarget<T> target)` Create a new `RelationalTarget` using given `target` as root.
    `default Join.JoinBuilder<T>` | `rightJoin(DataTarget<?> target)` Add a `Join.JoinType.RIGHT` join clause using given `target`.

    - ### Methods inherited from interface com.holonplatform.core.datastore.DataTarget

      `named, of, property, property`

    - ### Methods inherited from interface com.holonplatform.core.Path.FinalPath

      `getParent`

    - ### Methods inherited from interface com.holonplatform.core.Path

      `fullName, getName, getType, isRootPath, of, relativeName, stream`

    - ### Methods inherited from interface com.holonplatform.core.Expression

      `validate`

    - ### Methods inherited from interface com.holonplatform.core.datastore.relational.Aliasable

      `alias, getAlias`

- - ### Method Detail

    - #### getJoins

          Collection<Join<?>> getJoins()

      Get the defined joins.
      Returns:
        the defined joins, an empty set if none

    - #### join

          Join.JoinBuilder<T> join(DataTarget<?> target,
                                   Join.JoinType type)

      Add a join clause using given `target` as join destination.
      Parameters:
        `target` - Target to join (not null)
        `type` - Join type (not null)
      Returns:
        The `Join` builder

    - #### innerJoin

          default Join.JoinBuilder<T> innerJoin(DataTarget<?> target)

      Add a `Join.JoinType.INNER` join clause using given `target`.
      Parameters:
        `target` - Target to join (not null)
      Returns:
        The `Join` builder

    - #### leftJoin

          default Join.JoinBuilder<T> leftJoin(DataTarget<?> target)

      Add a `Join.JoinType.LEFT` join clause using given `target`.
      Parameters:
        `target` - Target to join (not null)
      Returns:
        The `Join` builder

    - #### rightJoin

          default Join.JoinBuilder<T> rightJoin(DataTarget<?> target)

      Add a `Join.JoinType.RIGHT` join clause using given `target`.
      Parameters:
        `target` - Target to join (not null)
      Returns:
        The `Join` builder

    - #### of

          static <T> RelationalTarget<T> of(DataTarget<T> target)

      Create a new `RelationalTarget` using given `target` as root.
      Type Parameters:
        `T` - Target path type
      Parameters:
        `target` - Root target (not null)
      Returns:
        A new `RelationalTarget` instance

Copyright © 2017 The Holon Platform. All rights reserved.