# Interface ComparableProperty<E>

All Superinterfaces:
  `Property<E>`

All Known Implementing Classes:
  `DateProperty, NumericIdProperty, NumericProperty, StringProperty`

public interface ComparableProperty<E> extends Property<E>
Interface (or "Trait") that provides basic functionality for comparable properties.

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default Expression`
  `between(E lower, E upper)`
  `default Expression`
  `between(ComparableProperty<?> lower, ComparableProperty<?> upper)`
  `default Expression`
  `gt(E value)`
  `default Expression`
  `gt(ComparableProperty<?> value)`
  `default Expression`
  `gtAll(ColumnSelect<E> subquery)`
  `default Expression`
  `gtAny(ColumnSelect<E> subquery)`
  `default Expression`
  `gte(E value)`
  `default Expression`
  `gte(ComparableProperty<?> value)`
  `default Expression`
  `gteAll(ColumnSelect<E> subquery)`
  `default Expression`
  `gteAny(ColumnSelect<E> subquery)`
  `default Expression`
  `lt(E value)`
  `default Expression`
  `lt(ComparableProperty<?> value)`
  `default Expression`
  `ltAll(ColumnSelect<E> subquery)`
  `default Expression`
  `ltAny(ColumnSelect<E> subquery)`
  `default Expression`
  `lte(E value)`
  `default Expression`
  `lte(ComparableProperty<?> value)`
  `default Expression`
  `lteAll(ColumnSelect<E> subquery)`
  `default Expression`
  `lteAny(ColumnSelect<E> subquery)`
  `default BaseProperty<E>`
  `max()`
  `default BaseProperty<E>`
  `min()`

  ### Methods inherited from interface Property

  `getAlias, getExpression, getName, getPath, getType`

- ## Method Details

  - ### between

    default Expression between(E lower, E upper)
    Parameters:
      `lower` - The lower bound.
      `upper` - The upper bound.
    Returns:
      An expression checking for objects between a lower and upper bound inclusive

  - ### between

    default Expression between(ComparableProperty<?> lower, ComparableProperty<?> upper)
    Parameters:
      `lower` - The lower bound.
      `upper` - The upper bound.
    Returns:
      An expression checking for objects between a lower and upper bound inclusive

  - ### gt

    default Expression gt(E value)
    Returns:
      A greater than Expression.

  - ### gt

    default Expression gt(ComparableProperty<?> value)
    Returns:
      Represents a greater than relationship between two attributes (columns).

  - ### gte

    default Expression gte(E value)
    Returns:
      A greater than or equal to Expression.

  - ### gte

    default Expression gte(ComparableProperty<?> value)
    Returns:
      Represents a greater than or equal relationship between two attributes (columns).

  - ### lt

    default Expression lt(E value)
    Returns:
      A less than Expression.

  - ### lt

    default Expression lt(ComparableProperty<?> value)
    Returns:
      Represents a less than relationship between two attributes (columns).

  - ### lte

    default Expression lte(E value)
    Returns:
      A less than or equal to Expression.

  - ### lte

    default Expression lte(ComparableProperty<?> value)
    Returns:
      Represents a less than or equal relationship between two attributes (columns).

  - ### max

    default BaseProperty<E> max()
    See Also:
      - `FunctionExpressionFactory.maxExp(Expression)`

  - ### min

    default BaseProperty<E> min()
    See Also:
      - `FunctionExpressionFactory.minExp(Expression)`

  - ### ltAll

    default Expression ltAll(ColumnSelect<E> subquery)
    Parameters:
      `subquery` - to use, must be a single column query.
    Returns:
      `Expression` that translates to a "< ALL (subquery)" SQL
    Since:
      5.0

  - ### lteAll

    default Expression lteAll(ColumnSelect<E> subquery)
    Parameters:
      `subquery` - to use, must be a single column query.
    Returns:
      `Expression` that translates to a "<= ALL (subquery)" SQL
    Since:
      5.0

  - ### gtAll

    default Expression gtAll(ColumnSelect<E> subquery)
    Parameters:
      `subquery` - to use, must be a single column query.
    Returns:
      `Expression` that translates to a "> ALL (subquery)" SQL
    Since:
      5.0

  - ### gteAll

    default Expression gteAll(ColumnSelect<E> subquery)
    Parameters:
      `subquery` - to use, must be a single column query.
    Returns:
      `Expression` that translates to a ">= ALL (subquery)" SQL
    Since:
      5.0

  - ### ltAny

    default Expression ltAny(ColumnSelect<E> subquery)
    Parameters:
      `subquery` - to use, must be a single column query.
    Returns:
      `Expression` that translates to a "< ANY (subquery)" SQL
    Since:
      5.0

  - ### lteAny

    default Expression lteAny(ColumnSelect<E> subquery)
    Parameters:
      `subquery` - to use, must be a single column query.
    Returns:
      `Expression` that translates to a "<= ANY (subquery)" SQL
    Since:
      5.0

  - ### gtAny

    default Expression gtAny(ColumnSelect<E> subquery)
    Parameters:
      `subquery` - to use, must be a single column query.
    Returns:
      `Expression` that translates to a "> ANY (subquery)" SQL
    Since:
      5.0

  - ### gteAny

    default Expression gteAny(ColumnSelect<E> subquery)
    Parameters:
      `subquery` - to use, must be a single column query.
    Returns:
      `Expression` that translates to a ">= ANY (subquery)" SQL
    Since:
      5.0