SelectQueryBuilder
Defines the public API for building SQL SELECT queries.
dataAccess.select("l.id", "l.name", "p.name AS province_name")
.from("legions l JOIN provinces p ON l.province_id = p.id")
.where("l.status = @status")
.orderBy("l.name ASC")
.page(0, 20)
.toListOf<LegionSummary>("status" to LegionStatus.OnMarch)Functions
Converts this builder to a StepBuilderMethods for lazy execution within a TransactionPlan.
Switches the builder to streaming mode, optimal for large datasets.
Switches the builder to asynchronous mode. Requires providing a CoroutineScope in which callback will be launched.
Creates and returns a deep copy of this builder. Useful for creating query variants from a shared base without modifying the original.
Appends a FOR UPDATE locking clause to the query.
Defines the data source (FROM clause).
Uses the result of another query as a data source (derived table). Automatically wraps the subquery in parentheses and adds an alias when provided.
Defines row grouping (GROUP BY clause).
Filters results after grouping (HAVING clause).
Limits the number of returned rows (LIMIT clause).
Specifies the number of rows to skip (OFFSET clause).
Defines result ordering (ORDER BY clause).
Configures pagination by setting LIMIT and OFFSET.
Marks the WITH clause as recursive.
Fetches a single value from the first column of the first row. Always returns Failure if no rows are found, regardless of nullability. Nullability only controls whether a null value in the column is allowed: use toFieldStrict<Int>() to fail on null, or toFieldStrict<Int?>() to allow null values.
Maps results to a list of objects of the given type. Requires that column names/aliases in SQL (in snake_case convention) match property names in the target class (in camelCase convention) or have a @MapKey annotation with the stored column name.
Convenient inline extension function for toListOf. Uses reified to automatically infer the target type.
Maps the result to a single object of the given type. Works on the same mapping principle as toListOf. Nullability is determined by the KType: use toSingleOf<User>() for non-null or toSingleOf<User?>() for nullable results.
Convenient inline extension function for toSingleOf. Uses reified to automatically infer the target type.
Fetches a single row as Map
Defines a filter condition (WHERE clause).
Adds a Common Table Expression (CTE) to the query.