8#include "query/QueryData.hpp"
27 Query() : data{.modelInfo =
Model<T>().getModelInfo()} {}
35 data.predicate = predicate;
46 data.predicate = data.predicate.has_value() ? data.predicate.value() && predicate : predicate;
57 data.predicate = data.predicate.has_value() ? data.predicate.value() || predicate : predicate;
68 template <
typename... Orders>
71 data.orderBy = {std::move(orders)...};
82 data.isDistinct =
true;
118 data.shouldJoin =
false;
133 [[nodiscard]]
inline auto getData() const -> const query::QueryData&
138 query::QueryData data;
A class representing a database in the ORM framework.
Definition database.hpp:23
A template class representing a model in the ORM framework.
Definition model.hpp:17
auto orderBy(Orders... orders) -> Query< T > &
Sets the ORDER BY clauses for the select query.
Definition query.hpp:69
auto andWhere(const query::Predicate &predicate) -> Query< T > &
Adds a predicate with AND.
Definition query.hpp:44
auto orWhere(const query::Predicate &predicate) -> Query< T > &
Adds a predicate with OR.
Definition query.hpp:55
auto where(const query::Predicate &predicate) -> Query< T > &
Replaces the WHERE predicate.
Definition query.hpp:33
auto distinct() -> Query< T > &
Select distinct rows.
Definition query.hpp:80
auto limit(std::size_t limit) -> Query< T > &
Sets the LIMIT clause for the select query.
Definition query.hpp:104
auto disableJoining() -> Query< T > &
Disables joining for the select query.
Definition query.hpp:116
Query()
Constructs a Query object.
Definition query.hpp:27
auto offset(std::size_t offset) -> Query< T > &
Sets the OFFSET clause for the select query.
Definition query.hpp:92