CrudRepository

abstract class CrudRepository<ID : Comparable<ID>, E : Entity<ID>>(provider: DatabaseProvider) : Repository<ID, E>

Abstract repository that provides full CRUD operations on top of Repository.

All blocking methods delegate to provider.dbQuery; coroutine variants use provider.dbQuerySuspend so callers can choose the concurrency model.

Usage:

class PlayerRepository(provider: DatabaseProvider) :
CrudRepository<Int, PlayerEntity>(provider) {
override val dao = PlayerEntity
}

Constructors

Link copied to clipboard
constructor(provider: DatabaseProvider)

Properties

Link copied to clipboard
abstract val dao: EntityClass<ID, E>

The org.jetbrains.exposed.v1.dao.EntityClass for this repository.

Functions

Link copied to clipboard
open override fun all(): List<E>

Finds all entities.

Link copied to clipboard
fun count(): Long
Link copied to clipboard
fun delete(entity: E)
Link copied to clipboard
Link copied to clipboard
fun exists(id: ID): Boolean
Link copied to clipboard
fun findAll(predicate: () -> Op<Boolean>): List<E>
Link copied to clipboard
suspend fun findAllAsync(predicate: () -> Op<Boolean>): List<E>
Link copied to clipboard
open override fun findById(id: ID): E?

Finds an entity by its ID.

Link copied to clipboard
fun page(offset: Long = 0, limit: Int = 20): List<E>
Link copied to clipboard
suspend fun pageAsync(offset: Long = 0, limit: Int = 20): List<E>
Link copied to clipboard
fun save(init: E.() -> Unit): E
Link copied to clipboard
suspend fun saveAsync(init: E.() -> Unit): E
Link copied to clipboard
fun update(id: ID, block: E.() -> Unit): E?
Link copied to clipboard
suspend fun updateAsync(id: ID, block: E.() -> Unit): E?