Class ColumnSelect<T>
- All Implemented Interfaces:
- Serializable,- Query,- Select<T>
A helper builder for queries selecting individual properties based on the root object.
It can be used to select properties of the object itself, properties of related entities or some function calls (including aggregate functions).
Usage examples:
 
      // select list of names:
      List<String> names = ObjectSelect.columnQuery(Artist.class, Artist.ARTIST_NAME).select(context);
      // select count:
      long count = ObjectSelect.columnQuery(Artist.class, PropertyFactory.COUNT).selectOne();
      // select only required properties of an entity:
      List<Object[]> data = ObjectSelect.columnQuery(Artist.class, Artist.ARTIST_NAME, Artist.DATE_OF_BIRTH)
                                  .where(Artist.ARTIST_NAME.like("Picasso%))
                                  .select(context);
 
 
 
 Note: this class can't be instantiated directly. Use ObjectSelect.
- Since:
- 4.0
- See Also:
- 
Field SummaryFieldsFields inherited from class org.apache.cayenne.query.FluentSelectdbEntityName, distinct, entityName, entityType, having, havingExpressionIsActive, metaData, orderings, whereFields inherited from class org.apache.cayenne.query.AbstractQueryrootFields inherited from class org.apache.cayenne.query.CacheableQuerylogger
- 
Constructor SummaryConstructorsModifierConstructorDescriptionprotectedprotectedColumnSelect(ObjectSelect<T> select) Copy constructor to convert ObjectSelect to ColumnSelect
- 
Method SummaryModifier and TypeMethodDescription<E> ColumnSelect<Object[]>aggregate(BaseProperty<E> property, String function, Class<E> type) Select result of some function, that aggregates values.avg(NumericProperty<?> property) Select average value of propertyprotected <E> ColumnSelect<E>columns(Collection<Property<?>> properties) Add properties to select.Add properties to select.count()Shortcut forcolumns(Property[])columns}(Property.COUNT)count(BaseProperty<?> property) Select COUNT(property)protected org.apache.cayenne.query.ColumnSelectMetadatadistinct()Explicitly request distinct in query.protected org.apache.cayenne.query.ColumnSelectMetadataCollection<Property<?>>getMetaData(EntityResolver resolver) Returns default select parameters.Appends a having qualifier expression of this query, using provided expression String and an array of position parameters.having(Expression expression) Appends a having qualifier expression of this query.<E> ColumnSelect<E>Maps result of this query by processing with a given function.max(ComparableProperty<?> property) Select maximum value of propertymin(ComparableProperty<?> property) Select minimum value of propertyselectFirst(ObjectContext context) Selects a single object using provided context.<E extends Number>
 ColumnSelect<Object[]>sum(NumericProperty<E> property) Select sum of valuesExplicitly suppress distinct in query.Methods inherited from class org.apache.cayenne.query.FluentSelectand, and, batchIterator, cacheGroup, cacheStrategy, cacheStrategy, castSelf, createSQLAction, dbEntityName, entityName, entityType, getActiveExpression, getDbEntityName, getEntityName, getEntityType, getHaving, getLimit, getOffset, getOrderings, getPageSize, getPrefetches, getQueryTimeout, getStatementFetchSize, getWhere, initWithProperties, isDistinct, isFetchingDataRows, iterate, iterator, joinExpression, limit, localCache, localCache, offset, or, or, orderBy, orderBy, orderBy, orderBy, pageSize, prefetch, prefetch, queryTimeout, resolveRoot, route, routePrefetches, select, selectOne, setActiveExpression, sharedCache, sharedCache, statementFetchSize, where, whereMethods inherited from class org.apache.cayenne.query.AbstractQuerygetRoot, setRoot, toStringMethods inherited from class org.apache.cayenne.query.CacheableQuerygetCacheGroup, getCacheStrategy, setCacheGroup, setCacheStrategy, useLocalCache, useLocalCache, useSharedCache, useSharedCache
- 
Field Details- 
columns
- 
singleColumnprotected boolean singleColumn
 
- 
- 
Constructor Details- 
ColumnSelectprotected ColumnSelect()
- 
ColumnSelectCopy constructor to convert ObjectSelect to ColumnSelect
 
- 
- 
Method Details- 
createMetadataprotected org.apache.cayenne.query.ColumnSelectMetadata createMetadata()- Specified by:
- createMetadatain class- FluentSelect<T,- ColumnSelect<T>> 
 
- 
columnsAdd properties to select. Can be any properties that can be resolved against root entity type (root entity properties, function call expressions, properties of relationships, etc). List<Object[]> columns = ObjectSelect.columnQuery(Artist.class, Artist.ARTIST_NAME) .columns(Artist.ARTIST_SALARY, Artist.DATE_OF_BIRTH) .select(context);- Parameters:
- properties- array of properties to select
- See Also:
 
- 
columnsAdd properties to select. Can be any properties that can be resolved against root entity type (root entity properties, function call expressions, properties of relationships, etc). - Parameters:
- properties- collection of properties, must contain at least one element
- See Also:
 
- 
column
- 
countShortcut for columns(Property[])columns}(Property.COUNT)
- 
countSelect COUNT(property) Can return different result than COUNT(*) as it will count only non null values - See Also:
 
- 
minSelect minimum value of property - See Also:
 
- 
maxSelect maximum value of property - See Also:
 
- 
avgSelect average value of property - See Also:
 
- 
sumSelect sum of values - See Also:
 
- 
aggregatepublic <E> ColumnSelect<Object[]> aggregate(BaseProperty<E> property, String function, Class<E> type) Select result of some function, that aggregates values. - Since:
- 5.0
- See Also:
 
- 
havingAppends a having qualifier expression of this query. An equivalent toFluentSelect.and(Expression...)that can be used a syntactic sugar.- Returns:
- this object
 
- 
havingAppends a having qualifier expression of this query, using provided expression String and an array of position parameters. This is an equivalent to calling "and".- Returns:
- this object
 
- 
distinctExplicitly request distinct in query.
- 
suppressDistinctExplicitly suppress distinct in query.
- 
getColumns- Overrides:
- getColumnsin class- FluentSelect<T,- ColumnSelect<T>> 
 
- 
selectFirstDescription copied from interface:SelectSelects a single object using provided context. The query itself can match any number of objects, but will return only the first one. It returns null if no objects were matched.If it matched more than one object, the first object from the list is returned. This makes 'selectFirst' different from Select.selectOne(ObjectContext), which would throw in this situation. 'selectFirst' is useful e.g. when the query is ordered and we only want to see the first object (e.g. "most recent news article"), etc.Selecting the first object via "Select.selectFirst(ObjectContext)" is more comprehensible than selecting via "ObjectContext.selectFirst(Select)", because implementations of "Select" set fetch size limit to one. 
- 
getMetaDataDescription copied from class:AbstractQueryReturns default select parameters.- Specified by:
- getMetaDatain interface- Query
- Overrides:
- getMetaDatain class- AbstractQuery
 
- 
getBaseMetaDataprotected org.apache.cayenne.query.ColumnSelectMetadata getBaseMetaData()- Specified by:
- getBaseMetaDatain class- CacheableQuery
 
- 
mapMaps result of this query by processing with a given function.
 Could be used to map plain Object[] to some domain-specific object.
 Note: this method could be called multiple time, result will be mapped by all functions in the call order.- Type Parameters:
- E- new result type
- Parameters:
- mapper- function that maps result to the required type.
- Returns:
- this query with changed result type
- Since:
- 4.2
 
 
-