## Uses of Interface
org.apache.cayenne.exp.property.Property

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

- - ### Uses of Property in org.apache.cayenne.access.translator.select

    Methods in org.apache.cayenne.access.translator.select that return types with arguments of type Property
    Modifier and Type | Method | Description
    --- | --- | ---
    `Collection<Property<?>>` | FluentSelectWrapper.`getColumns()` |
    `Collection<Property<?>>` | SelectQueryWrapper.`getColumns()` | Deprecated.
    `Collection<Property<?>>` | TranslatableQueryWrapper.`getColumns()` |

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

    Classes in org.apache.cayenne.exp that implement Property
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `Property<E>` | Deprecated. since 4.2 in favour of type-specific set of properties, see `PropertyFactory` and `org.apache.cayenne.exp.property` package.

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

    Subinterfaces of Property in org.apache.cayenne.exp.property
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `ComparableProperty<E>` | Interface (or "Trait") that provides basic functionality for comparable properties.
    `interface` | `IdProperty<E>` | Base class for properties mapped to PK
    `interface` | `PathProperty<E>` | Property that represents path segment (relationship or embeddable).
    `interface` | `RelationshipProperty<E>` | Interface (or "Trait") that provides basic functionality for all types of relationships.

    Classes in org.apache.cayenne.exp.property that implement Property
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `BaseIdProperty<E>` | Property that represents non-numeric PK
    `class` | `BaseProperty<E>` | Property that represents generic attribute.
    `class` | `CollectionProperty<V extends Persistent,​E extends Collection<V>>` | Base class for `ListProperty` and `SetProperty`
    `class` | `DateProperty<E>` | Property that represents date/time attribute.
    `class` | `EmbeddableProperty<E>` | Property that represents object attribute mapped on `Embeddable` object.
    `class` | `EntityProperty<E extends Persistent>` | Property that represents to-one relationships.
    `class` | `ListProperty<V extends Persistent>` | Property that represents to-many relationship mapped on `List`.
    `class` | `MapProperty<K,​V extends Persistent>` | Property that represents to-many relationship mapped on `Map`.
    `class` | `NumericIdProperty<E extends Number>` | Property that represents numeric PK
    `class` | `NumericProperty<E extends Number>` | Property that represents attributes mapped on numeric types
    `class` | `SetProperty<V extends Persistent>` | Property that represents to-many relationship mapped on `Set`.
    `class` | `StringProperty<E extends CharSequence>` | Property that represents attributes mapped on string types

  - ### 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` | Deprecated.

    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<?>>` | FluentSelect.`getColumns()` |
    `Collection<Property<?>>` | SelectQuery.`getColumns()` | Deprecated.

    Methods in org.apache.cayenne.query with parameters of type Property
    Modifier and Type | Method | Description
    --- | --- | ---
    `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<?>... columns)` | 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<?>... properties)` | Add properties to select.
    `ColumnSelect<Object[]>` | ObjectSelect.`columns​(Property<?>... properties)` | Select only specific properties.
    `void` | SelectQuery.`setColumns​(Property<?>... columns)` | Deprecated.

    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)` | Deprecated.