## Uses of Interface
com.holonplatform.core.query.QueryProjection

- Packages that use QueryProjection
  Package | Description
  --- | ---
  com.holonplatform.async.datastore.operation |
  com.holonplatform.core.beans |
  com.holonplatform.core.datastore.relational |
  com.holonplatform.core.property |
  com.holonplatform.core.query |
  com.holonplatform.core.query.lock |

- - ### Uses of QueryProjection in com.holonplatform.async.datastore.operation

    Methods in com.holonplatform.async.datastore.operation with parameters of type QueryProjection
    Modifier and Type | Method and Description
    --- | ---
    `default <R> CompletionStage<Optional<R>>` | AsyncQueryResults.`findOne(QueryProjection<R> projection)` Execute query asynchronously and get an expected unique result using `projection` to map result to required type.
    `default <R> CompletionStage<List<R>>` | AsyncQueryResults.`list(QueryProjection<R> projection)` Convenience method to obtain the query results `AsyncQueryResults.stream(QueryProjection)` as a `List`.
    `<R> CompletionStage<Stream<R>>` | AsyncQueryResults.`stream(QueryProjection<R> projection)` Execute query asynchronously and get a `Stream` of query results using given `projection` to map the results to the required type.

  - ### Uses of QueryProjection in com.holonplatform.core.beans

    Subinterfaces of QueryProjection in com.holonplatform.core.beans
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `BeanProperty<T>` Represents a Java Bean property as a `PathProperty`, providing additional configuration informations and read/write methods.
    `static interface` | `BeanProperty.Builder<T>` BeanProperty builder.
    `interface` | `BooleanBeanProperty` A Boolean type `BeanProperty`, implementing `BooleanProperty`.
    `interface` | `NumericBeanProperty<N extends Number>` A numeric type `BeanProperty`, implementing `NumericProperty`.
    `interface` | `StringBeanProperty` A String type `BeanProperty`, implementing `StringProperty`.
    `interface` | `TemporalBeanProperty<T>` A temporal type `BeanProperty`, implementing `TemporalProperty`.

  - ### Uses of QueryProjection in com.holonplatform.core.datastore.relational

    Methods in com.holonplatform.core.datastore.relational that return QueryProjection
    Modifier and Type | Method and Description
    --- | ---
    `QueryProjection<T>` | SubQuery.`getSelection()` Gets the projection to use as the subquery result

    Methods in com.holonplatform.core.datastore.relational with parameters of type QueryProjection
    Modifier and Type | Method and Description
    --- | ---
    `static <T> SubQuery<T>` | SubQuery.`create(Datastore datastore, QueryProjection<T> selection)` Deprecated. Datastore parameter is no longer required, use `SubQuery.create(QueryProjection)` instead
    `static <T> SubQuery<T>` | SubQuery.`create(QueryProjection<T> selection)` Build a sub query with given projection as selection.
    `SubQuery<T>` | SubQuery.`select(QueryProjection<T> projection)` Specify the projection to use as the subquery result.

  - ### Uses of QueryProjection in com.holonplatform.core.property

    Subinterfaces of QueryProjection in com.holonplatform.core.property
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `BooleanProperty` A boolean type `PathProperty`.
    `static interface` | `BooleanProperty.BooleanPropertyBuilder` `BooleanProperty` builder.
    `interface` | `CollectionPathProperty<E,C extends Collection<E>>` A `CollectionProperty` type `PathProperty`.
    `interface` | `ListPathProperty<T>` A `CollectionPathProperty` which uses a `List` as concrete collection type.
    `static interface` | `ListPathProperty.ListPathPropertyBuilder<T>` `ListPathProperty` builder.
    `interface` | `NumericProperty<N extends Number>` A numeric type `PathProperty`.
    `static interface` | `NumericProperty.NumericPropertyBuilder<N extends Number>` `NumericProperty` builder.
    `interface` | `PathProperty<T>` A `Property` bound to a `Path`, using `Path.getName()` as property name.
    `static interface` | `PathProperty.PathPropertyBuilder<T>` `PathProperty` builder.
    `interface` | `PropertyBoxProperty` A `PropertyBox` type `PathProperty`.
    `static interface` | `PropertyBoxProperty.PropertyBoxPropertyBuilder` `PropertyBoxProperty` builder.
    `interface` | `SetPathProperty<T>` A `CollectionPathProperty` which uses a `Set` as concrete collection type.
    `static interface` | `SetPathProperty.SetPathPropertyBuilder<T>` `SetPathProperty` builder.
    `interface` | `StringProperty` A String type `PathProperty`.
    `static interface` | `StringProperty.StringPropertyBuilder` `StringProperty` builder.
    `interface` | `TemporalProperty<T>` A temporal type `PathProperty`.
    `static interface` | `TemporalProperty.TemporalPropertyBuilder<T>` `TemporalProperty` builder.

  - ### Uses of QueryProjection in com.holonplatform.core.query

    Subinterfaces of QueryProjection in com.holonplatform.core.query
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `BeanProjection<T>` A `QueryProjection` which uses a `BeanPropertySet` to define the projection selection and returns `BeanPropertySet.getBeanClass()` type results.
    `interface` | `ConstantExpression<T>` Constant value expression which can also act as `QueryProjection`.
    `interface` | `CountAllProjection` A `QueryProjection` to represent the count of all the results of a query.
    `interface` | `PathExpression<T>` A `QueryExpression` wich represents a `Path`.
    `interface` | `PropertySetProjection` A `QueryProjection` which uses a `PropertySet` to define the projection selection and returns `PropertyBox` type results.
    `interface` | `QueryFunction<T,A>` Represents a function expression.
    `static interface` | `QueryFunction.Avg` A function which represents the average value of a query result.
    `static interface` | `QueryFunction.Count` A function which represents the count of a query result values.
    `static interface` | `QueryFunction.Max<T>` A function which represents the largest value of a query result.
    `static interface` | `QueryFunction.Min<T>` A function which represents the smallest value of a query result.
    `static interface` | `QueryFunction.NoArgQueryFunction<T>` A `QueryFunction` which do not support any argument.
    `static interface` | `QueryFunction.PropertyQueryFunction<T,A>` A `QueryFunction` which is also a `Property`, allowing the function to be used within a property set query projection and the function value to be collected in a `PropertyBox`.
    `static interface` | `QueryFunction.Sum<T extends Number>` A function which represents the sum of a numeric query result values.
    `interface` | `SelectAllProjection` A `QueryProjection` to obtain all the values af a persistent data entity instance.
    `interface` | `StringFunction` Represents a `QueryFunction` on a String data type.
    `static interface` | `StringFunction.Lower` Function to convert a string to lowercase.
    `static interface` | `StringFunction.Upper` Function to convert a string to uppercase.
    `interface` | `TemporalFunction<T>` Represents a temporal-related `QueryFunction`.
    `static interface` | `TemporalFunction.CurrentDate` A function to obtain the current date as a `Date`.
    `static interface` | `TemporalFunction.CurrentLocalDate` A function to obtain the current date as a `LocalDate`.
    `static interface` | `TemporalFunction.CurrentLocalDateTime` A function to obtain the current date and time as a `LocalDateTime`.
    `static interface` | `TemporalFunction.CurrentTimestamp` A function to obtain the current timestamp as a `Date`.
    `static interface` | `TemporalFunction.Day` A function to extract the day part of a temporal data type.
    `static interface` | `TemporalFunction.Hour` A function to extract the hour part of a temporal data type.
    `static interface` | `TemporalFunction.Month` A function to extract the month part of a temporal data type.
    `static interface` | `TemporalFunction.Year` A function to extract the year part of a temporal data type.

    Methods in com.holonplatform.core.query that return QueryProjection
    Modifier and Type | Method and Description
    --- | ---
    `static <T> QueryProjection<T>` | QueryProjection.`bean(Class<? extends T> beanClass, Path<?>... selection)` Create a `QueryProjection` using given bean class.
    `static <T> QueryProjection<T>` | QueryProjection.`constant(T value)` Create a `QueryProjection` for a constant value.
    `static QueryProjection<Long>` | QueryProjection.`countAll()` Create a query projection to count all the query results.
    `QueryProjection<R>` | QueryOperation.`getProjection()` Get the query projection.
    `static <T> QueryProjection<T>` | QueryProjection.`path(Path<T> path)` Create a `QueryProjection` for a `Path` expression.
    `static <P extends Property> QueryProjection<PropertyBox>` | QueryProjection.`propertySet(Iterable<P> properties)` Create a `PropertyBox` type query projection using given `properties` as property set.
    `static QueryProjection<PropertyBox>` | QueryProjection.`propertySet(Property<?>... properties)` Create a `PropertyBox` type query projection using given `properties` as property set.

    Methods in com.holonplatform.core.query with parameters of type QueryProjection
    Modifier and Type | Method and Description
    --- | ---
    `static <C extends QueryConfiguration,R> QueryOperation<C,R>` | QueryOperation.`create(C configuration, QueryProjection<R> projection)` Create a new `QueryOperation`.
    `default <R> Optional<R>` | QueryResults.`findOne(QueryProjection<R> projection)` Execute query and get an expected unique result using `projection` to map result to required type.
    `<R> OR` | QueryProjectionOperations.`findOne(QueryProjection<R> projection)` Execute the query and get an expected unique result using given `projection` to map the result to the required type.
    `default <R> List<R>` | QueryResults.`list(QueryProjection<R> projection)` Convenience method to obtain the query results `QueryResults.stream(QueryProjection)` as a `List`
    `<R> LR` | QueryProjectionOperations.`list(QueryProjection<R> projection)` Convenience method to obtain the query results `QueryProjectionOperations.stream(QueryProjection)` as a `List`
    `<R> Stream<R>` | QueryResults.`stream(QueryProjection<R> projection)` Execute query and get a `Stream` of query results using given `projection` to map results to required type.
    `<R> SR` | QueryProjectionOperations.`stream(QueryProjection<R> projection)` Execute the query and get a `Stream` of query results using given `projection` to map results to the required type.

  - ### Uses of QueryProjection in com.holonplatform.core.query.lock

    Methods in com.holonplatform.core.query.lock with parameters of type QueryProjection
    Modifier and Type | Method and Description
    --- | ---
    `<R> Stream<R>` | LockQuery.`stream(QueryProjection<R> projection)` Execute query and get a `Stream` of query results using given `projection` to map results to required type.

Copyright © 2019 The Holon Platform. All rights reserved.