Class ObjectSelect<T>
- All Implemented Interfaces:
- Serializable,- ParameterizedQuery,- Query,- Select<T>
- Direct Known Subclasses:
- PrefetchSelectQuery
For example, the following is a convenient way to return a record:
 
 Artist a = ObjectSelect
      .query(Artist.class)
      .where(Artist.NAME.eq("Picasso"))
      .selectOne(context);
 
 - Since:
- 4.0
- See Also:
- 
Field SummaryFields 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 SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescription<E> ColumnSelect<E>aggregate(BaseProperty<E> property, String function, Class<E> type) Select result of some function, that aggregates values.<E extends Number>
 ColumnSelect<E>avg(NumericProperty<E> property) Select average value of property<E> ColumnSelect<E>Select one specific property.static ColumnSelect<Object[]>columnQuery(Class<?> entityType, Property<?>... columns) Creates a ColumnSelect that will fetch multiple columns of a givenObjEntitystatic <E> ColumnSelect<E>columnQuery(Class<?> entityType, Property<E> column) Creates a ColumnSelect that will fetch single property that can be resolved against a givenObjEntityclass.Select only specific properties.count()Select COUNT(*)count(BaseProperty<?> property) Select COUNT(property)protected org.apache.cayenne.query.ObjectSelectMetadatacreateQuery(Map<String, ?> parameters) This method is intended for internal use in aMappedSelect.static ObjectSelect<DataRow>dataRowQuery(Class<?> entityType) Creates a ObjectSelect that fetches data for anObjEntitydetermined from a provided class.static ObjectSelect<DataRow>dataRowQuery(Class<?> entityType, Expression expression) Creates a ObjectSelect that fetches data for anObjEntitydetermined from a provided class and uses provided expression for its qualifier.static ObjectSelect<DataRow>Creates a ObjectSelect that fetches DataRows for aDbEntitydetermined from provided "dbEntityName".static ObjectSelect<DataRow>dbQuery(String dbEntityName, Expression expression) Creates a ObjectSelect that fetches DataRows for aDbEntitydetermined from provided "dbEntityName" and uses provided expression for its qualifier.distinct()Forces query to fetch DataRows.protected org.apache.cayenne.query.ObjectSelectMetadatagetMetaData(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>max(ComparableProperty<E> property) Select maximum value of property<E extends Number>
 ColumnSelect<E>max(NumericProperty<E> property) Select maximum value of property<E> ColumnSelect<E>min(ComparableProperty<E> property) Select minimum value of property<E extends Number>
 ColumnSelect<E>min(NumericProperty<E> property) Select minimum value of propertystatic <T> ObjectSelect<T>Creates a ObjectSelect that selects objects of a given persistent class.static <T> ObjectSelect<T>Creates a ObjectSelect that fetches data forObjEntitydetermined from provided "entityName", but fetches the result of a provided type.static <T> ObjectSelect<T>query(Class<T> entityType, Expression expression) Creates a ObjectSelect that selects objects of a given persistent class and uses provided expression for its qualifier.static <T> ObjectSelect<T>query(Class<T> entityType, Expression expression, List<Ordering> orderings) Creates a ObjectSelect that selects objects of a given persistent class and uses provided expression for its qualifier.longselectCount(ObjectContext context) Quick way to select count of recordsselectFirst(ObjectContext context) Selects a single object using provided context.<E extends Number>
 ColumnSelect<E>sum(NumericProperty<E> property) Select sum of valuesMethods inherited from class org.apache.cayenne.query.FluentSelectand, and, batchIterator, cacheGroup, cacheStrategy, cacheStrategy, castSelf, createSQLAction, dbEntityName, entityName, entityType, getActiveExpression, getColumns, 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, useSharedCacheMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.cayenne.query.QuerycreateSQLAction, route
- 
Constructor Details- 
ObjectSelectprotected ObjectSelect()
 
- 
- 
Method Details- 
queryCreates a ObjectSelect that selects objects of a given persistent class.
- 
queryCreates a ObjectSelect that selects objects of a given persistent class and uses provided expression for its qualifier.
- 
querypublic static <T> ObjectSelect<T> query(Class<T> entityType, Expression expression, List<Ordering> orderings) Creates a ObjectSelect that selects objects of a given persistent class and uses provided expression for its qualifier.
- 
dataRowQueryCreates a ObjectSelect that fetches data for anObjEntitydetermined from a provided class.
- 
dataRowQueryCreates a ObjectSelect that fetches data for anObjEntitydetermined from a provided class and uses provided expression for its qualifier.
- 
queryCreates a ObjectSelect that fetches data forObjEntitydetermined from provided "entityName", but fetches the result of a provided type. This factory method is most often used with generic classes that by themselves are not enough to resolve the entity to fetch.
- 
dbQueryCreates a ObjectSelect that fetches DataRows for aDbEntitydetermined from provided "dbEntityName".
- 
dbQueryCreates a ObjectSelect that fetches DataRows for aDbEntitydetermined from provided "dbEntityName" and uses provided expression for its qualifier.- Returns:
- this object
 
- 
columnQueryCreates a ColumnSelect that will fetch single property that can be resolved against a givenObjEntityclass.- Parameters:
- entityType- base persistent class that will be used as a root for this query
- column- single column to select
 
- 
columnQueryCreates a ColumnSelect that will fetch multiple columns of a givenObjEntity- Parameters:
- entityType- base persistent class that will be used as a root for this query
- columns- columns to select
 
- 
createMetadataprotected org.apache.cayenne.query.ObjectSelectMetadata createMetadata()- Specified by:
- createMetadatain class- FluentSelect<T,- ObjectSelect<T>> 
 
- 
havingAppends a having qualifier expression of this query. An equivalent toFluentSelect.and(Expression...)that can be used a syntactic sugar.- Returns:
- this object
- Since:
- 4.2
 
- 
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
- Since:
- 4.2
 
- 
fetchDataRowsForces query to fetch DataRows. This automatically changes whatever result type was set previously to "DataRow".- Returns:
- this object
 
- 
columnsSelect only specific properties. Can be any properties that can be resolved against root entity type (root entity's properties, function call expressions, properties of relationships, etc). List<Object[]> columns = ObjectSelect.query(Artist.class) .columns(Artist.ARTIST_NAME, Artist.DATE_OF_BIRTH) .select(context);- Parameters:
- properties- array of properties to select
- See Also:
 
- 
columnSelect one specific property. Can be any property that can be resolved against root entity type (root entity's property, function call expression, property of relationships, etc) If you need several columns use columns(Property[])method.List<String> names = ObjectSelect.query(Artist.class) .column(Artist.ARTIST_NAME) .select(context);- Parameters:
- property- single property to select
- See Also:
 
- 
countSelect COUNT(*)- See Also:
 
- 
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:
 
- 
minSelect minimum value of property - See Also:
 
- 
maxSelect maximum 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:
 
- 
aggregateSelect result of some function, that aggregates values. - Since:
- 5.0
- See Also:
 
- 
distinct- Returns:
- this
- Since:
- 4.2
 
- 
selectCountQuick way to select count of records Usage: long count = ObjectSelect.query(Artist.class) .where(Artist.ARTIST_NAME.like("a%")) .selectCount(context);- Parameters:
- context- to perform query
- Returns:
- count of rows
 
- 
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. - Specified by:
- selectFirstin interface- Select<T>
 
- 
getMetaDataDescription copied from class:AbstractQueryReturns default select parameters.- Specified by:
- getMetaDatain interface- Query
- Overrides:
- getMetaDatain class- AbstractQuery
 
- 
getBaseMetaDataprotected org.apache.cayenne.query.ObjectSelectMetadata getBaseMetaData()- Specified by:
- getBaseMetaDatain class- CacheableQuery
 
- 
createQueryThis method is intended for internal use in aMappedSelect.- Specified by:
- createQueryin interface- ParameterizedQuery
- Parameters:
- parameters- to apply
- Returns:
- this query with parameters applied to the where qualifier
- Since:
- 4.2
 
 
-