ORM C++
Loading...
Searching...
No Matches
orm::Query< T > Class Template Reference

A template class representing a select query in the ORM framework. More...

#include <query.hpp>

Public Member Functions

 Query ()=default
 Constructs a Query object.
auto where (const query::Predicate &predicate) -> Query< T > &
 Replaces the WHERE predicate.
auto andWhere (const query::Predicate &predicate) -> Query< T > &
 Adds a predicate with AND.
auto orWhere (const query::Predicate &predicate) -> Query< T > &
 Adds a predicate with OR.
template<typename... Orders>
auto orderBy (Orders... orders) -> Query< T > &
 Sets the ORDER BY clauses for the select query.
template<typename... Columns>
auto groupBy (Columns... columns) -> Query< T > &
 Sets the GROUP BY columns for the select query.
auto having (const query::AggregatePredicate &predicate) -> Query< T > &
 Replaces the HAVING predicate.
auto andHaving (const query::AggregatePredicate &predicate) -> Query< T > &
 Adds an aggregate predicate with AND.
auto orHaving (const query::AggregatePredicate &predicate) -> Query< T > &
 Adds an aggregate predicate with OR.
auto distinct () -> Query< T > &
 Select distinct rows.
auto offset (std::size_t offset) -> Query< T > &
 Sets the OFFSET clause for the select query.
auto limit (std::size_t limit) -> Query< T > &
 Sets the LIMIT clause for the select query.
auto disableJoining () -> Query< T > &
 Disables joining for the select query.
auto include (std::string relation) -> Query< T > &
 Explicitly loads a mapped OneToMany or ManyToMany collection.

Friends

template<typename>
class orm::Database
 Database class is a friend class of Query for access to the query data.
class orm::DatabaseCore

Detailed Description

template<typename T>
class orm::Query< T >

A template class representing a select query in the ORM framework.

This class provides functionality for building a select query.

Template Parameters
TThe type of the query.

Member Function Documentation

◆ andHaving()

template<typename T>
auto orm::Query< T >::andHaving ( const query::AggregatePredicate & predicate) -> Query< T > &
inline

Adds an aggregate predicate with AND.

Parameters
predicateThe aggregate predicate.
Returns
A reference to this query.

◆ andWhere()

template<typename T>
auto orm::Query< T >::andWhere ( const query::Predicate & predicate) -> Query< T > &
inline

Adds a predicate with AND.

Parameters
predicate

◆ disableJoining()

template<typename T>
auto orm::Query< T >::disableJoining ( ) -> Query< T > &
inline

Disables joining for the select query.

Note
Only ids fields will be set in related models.
Returns
A reference to the QueryBuilder object.

◆ distinct()

template<typename T>
auto orm::Query< T >::distinct ( ) -> Query< T > &
inline

Select distinct rows.

Returns
A reference to the QueryBuilder object.

◆ groupBy()

template<typename T>
template<typename... Columns>
auto orm::Query< T >::groupBy ( Columns... columns) -> Query< T > &
inline

Sets the GROUP BY columns for the select query.

Parameters
columnsThe model column paths to group by.
Returns
A reference to this query.

◆ having()

template<typename T>
auto orm::Query< T >::having ( const query::AggregatePredicate & predicate) -> Query< T > &
inline

Replaces the HAVING predicate.

Parameters
predicateThe aggregate predicate.
Returns
A reference to this query.

◆ include()

template<typename T>
auto orm::Query< T >::include ( std::string relation) -> Query< T > &
inline

Explicitly loads a mapped OneToMany or ManyToMany collection.

Repeating the same include is idempotent. Collection loading is performed after the root SELECT, so root pagination is preserved.

◆ limit()

template<typename T>
auto orm::Query< T >::limit ( std::size_t limit) -> Query< T > &
inline

Sets the LIMIT clause for the select query.

Parameters
limitThe maximum number of rows to return.
Returns
A reference to the QueryBuilder object.

◆ offset()

template<typename T>
auto orm::Query< T >::offset ( std::size_t offset) -> Query< T > &
inline

Sets the OFFSET clause for the select query.

Parameters
offsetThe number of rows to skip.
Returns
A reference to the QueryBuilder object.

◆ orderBy()

template<typename T>
template<typename... Orders>
auto orm::Query< T >::orderBy ( Orders... orders) -> Query< T > &
inline

Sets the ORDER BY clauses for the select query.

Parameters
ordersThe ORDER BY clauses.
Returns
A reference to the QueryBuilder object.

◆ orHaving()

template<typename T>
auto orm::Query< T >::orHaving ( const query::AggregatePredicate & predicate) -> Query< T > &
inline

Adds an aggregate predicate with OR.

Parameters
predicateThe aggregate predicate.
Returns
A reference to this query.

◆ orWhere()

template<typename T>
auto orm::Query< T >::orWhere ( const query::Predicate & predicate) -> Query< T > &
inline

Adds a predicate with OR.

Parameters
predicate

◆ where()

template<typename T>
auto orm::Query< T >::where ( const query::Predicate & predicate) -> Query< T > &
inline

Replaces the WHERE predicate.

Parameters
predicate

The documentation for this class was generated from the following file: