## Uses of Class
org.apache.cayenne.exp.Property

- Packages that use Property
  Package | Description
  --- | ---
  org.apache.cayenne.exp | Cayenne data expression classes.
  org.apache.cayenne.query | Defines standard queries supported by Cayenne and extension mechanism to create custom queries.

- - ### Uses of Property in org.apache.cayenne.exp

    Fields in org.apache.cayenne.exp declared as Property
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Property<Long>` | Property.`COUNT` | Property that can be used in COUNT(*) queries

    Methods in org.apache.cayenne.exp that return Property
    Modifier and Type | Method | Description
    --- | --- | ---
    `Property<E>` | Property.`abs()` |
    `Property<E>` | Property.`alias​(String alias)` | Creates alias with different name for this property
    `Property<E>` | Property.`avg()` |
    `Property<String>` | Property.`concat​(Object... args)` | Arguments will be converted as follows: if argument is a `Property` than its expression will be used if argument is a `Expression` than it will be used as is all other values will be converted to String
    `Property<Long>` | Property.`count()` |
    `Property<Long>` | Property.`countDistinct()` |
    `static <T> Property<T>` | Property.`create​(String name, Class<? super T> type)` | Creates property with name and type
    `static <T> Property<T>` | Property.`create​(String name, Expression expression, Class<? super T> type)` | Creates property with name, expression and type
    `static <T> Property<T>` | Property.`create​(Expression expression, Class<? super T> type)` | Creates property with expression and type
    `static <T extends Persistent> Property<T>` | Property.`createSelf​(Class<? super T> type)` | Creates "self" Property for persistent class.
    `Property<Object>` | Property.`dot​(String property)` | Constructs a property path by appending the argument to the existing property separated by a dot.
    `<T> Property<T>` | Property.`dot​(Property<T> property)` | Constructs a new property path by appending the argument to the existing property separated by a dot.
    `<T extends Persistent> Property<T>` | Property.`flat​(Class<? super T> tClass)` | Create new "flat" property for toMany relationship.
    `Property<Integer>` | Property.`length()` |
    `Property<Integer>` | Property.`locate​(String string)` |
    `Property<Integer>` | Property.`locate​(Property<? extends String> property)` |
    `Property<String>` | Property.`lower()` |
    `Property<E>` | Property.`max()` |
    `Property<E>` | Property.`min()` |
    `Property<E>` | Property.`mod​(Number number)` |
    `Property<E>` | Property.`outer()` | Returns a version of this property that represents an OUTER join.
    `Property<E>` | Property.`sqrt()` |
    `Property<String>` | Property.`substring​(int offset, int length)` |
    `Property<E>` | Property.`sum()` |
    `Property<String>` | Property.`trim()` |
    `Property<String>` | Property.`upper()` |

    Methods in org.apache.cayenne.exp with parameters of type Property
    Modifier and Type | Method | Description
    --- | --- | ---
    `<T> Property<T>` | Property.`dot​(Property<T> property)` | Constructs a new property path by appending the argument to the existing property separated by a dot.
    `Expression` | Property.`eq​(Property<?> value)` |
    `Expression` | Property.`gt​(Property<?> value)` |
    `Expression` | Property.`gte​(Property<?> value)` |
    `Property<Integer>` | Property.`locate​(Property<? extends String> property)` |
    `Expression` | Property.`lt​(Property<?> value)` |
    `Expression` | Property.`lte​(Property<?> value)` |
    `Expression` | Property.`ne​(Property<?> value)` |

  - ### Uses of Property in org.apache.cayenne.query

    Fields in org.apache.cayenne.query with type parameters of type Property
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Collection<Property<?>>` | SelectQuery.`columns` |

    Methods in org.apache.cayenne.query that return types with arguments of type Property
    Modifier and Type | Method | Description
    --- | --- | ---
    `Collection<Property<?>>` | ColumnSelect.`getColumns()` |
    `Collection<Property<?>>` | SelectQuery.`getColumns()` |

    Methods in org.apache.cayenne.query with parameters of type Property
    Modifier and Type | Method | Description
    --- | --- | ---
    `ColumnSelect<Object[]>` | ColumnSelect.`avg​(Property<?> property)` | Select average value of property
    `<E> ColumnSelect<E>` | ObjectSelect.`avg​(Property<E> property)` | Select average value of property
    `protected <E> ColumnSelect<E>` | ColumnSelect.`column​(Property<E> property)` |
    `<E> ColumnSelect<E>` | ObjectSelect.`column​(Property<E> property)` | Select one specific property.
    `static ColumnSelect<Object[]>` | ObjectSelect.`columnQuery​(Class<?> entityType, Property<?> firstColumn, Property<?>... otherColumns)` | Creates a ColumnSelect that will fetch multiple columns of a given `ObjEntity`
    `static <E> ColumnSelect<E>` | ObjectSelect.`columnQuery​(Class<?> entityType, Property<E> column)` | Creates a ColumnSelect that will fetch single property that can be resolved against a given `ObjEntity` class.
    `ColumnSelect<Object[]>` | ColumnSelect.`columns​(Property<?> firstProperty, Property<?>... otherProperties)` | Add properties to select.
    `ColumnSelect<Object[]>` | ObjectSelect.`columns​(Property<?> firstProperty, Property<?>... properties)` | Select only specific properties.
    `ColumnSelect<Object[]>` | ColumnSelect.`count​(Property<?> property)` | Select COUNT(property)
    `ColumnSelect<Long>` | ObjectSelect.`count​(Property<?> property)` | Select COUNT(property)
    `ColumnSelect<Object[]>` | ColumnSelect.`max​(Property<?> property)` | Select maximum value of property
    `<E> ColumnSelect<E>` | ObjectSelect.`max​(Property<E> property)` | Select maximum value of property
    `ColumnSelect<Object[]>` | ColumnSelect.`min​(Property<?> property)` | Select minimum value of property
    `<E> ColumnSelect<E>` | ObjectSelect.`min​(Property<E> property)` | Select minimum value of property
    `void` | SelectQuery.`setColumns​(Property<?>... columns)` |
    `<E extends Number> ColumnSelect<Object[]>` | ColumnSelect.`sum​(Property<E> property)` | Select sum of values
    `<E extends Number> ColumnSelect<E>` | ObjectSelect.`sum​(Property<E> property)` | Select sum of values

    Method parameters in org.apache.cayenne.query with type arguments of type Property
    Modifier and Type | Method | Description
    --- | --- | ---
    `ColumnSelect<Object[]>` | ColumnSelect.`columns​(Collection<Property<?>> properties)` | Add properties to select.
    `void` | SelectQuery.`setColumns​(Collection<Property<?>> columns)` |