DataAccess

Main entry point to the data layer, offering a consistent API for database interaction.

This facade enables:

  1. Executing single queries (CRUD) in auto-commit mode, through QueryOperations implementation.

  2. Executing atomic, complex operations within managed transaction blocks.

  3. Running predefined, declarative transaction plans.

Functions

Link copied to clipboard

Creates a new PgChannelListener backed by a dedicated database connection.

Link copied to clipboard
abstract fun deleteFrom(table: String): DeleteQueryBuilder

Starts building a DELETE query.

Link copied to clipboard
abstract fun executeTransactionPlan(plan: TransactionPlan, propagation: TransactionPropagation = TransactionPropagation.REQUIRED): DataResult<TransactionPlanResult>

Executes a sequence of operations (plan) within a single, atomic transaction.

Link copied to clipboard
abstract fun insertInto(table: String): InsertQueryBuilder

Starts building an INSERT query.

Link copied to clipboard
abstract fun notify(channel: String, payload: String? = null): DataResult<Unit>

Sends a notification to the given PostgreSQL channel via pg_notify.

Link copied to clipboard
abstract fun rawQuery(sql: String): RawQueryBuilder

Enables execution of a raw SQL query.

Link copied to clipboard
abstract fun select(vararg columns: String): SelectQueryBuilder

Starts building a SELECT query.

Link copied to clipboard
abstract fun <T> transaction(propagation: TransactionPropagation = TransactionPropagation.REQUIRED, block: (tx: QueryOperations) -> DataResult<T>): DataResult<T>

Executes the given block of code within a new, managed transaction.

Link copied to clipboard
abstract fun update(table: String): UpdateQueryBuilder

Starts building an UPDATE query.