KandraRepository

class KandraRepository<T : Any>(session: CqlSession, schema: TableSchema, entityClass: KClass<T>, batchEngine: BatchEngine)

Blocking repository for performing CRUD operations on a ScyllaDB table.

Parameters

T

the entity type annotated with @ScyllaTable

Constructors

Link copied to clipboard
constructor(session: CqlSession, schema: TableSchema, entityClass: KClass<T>, batchEngine: BatchEngine)

Functions

Link copied to clipboard
fun <V> append(entity: T, field: KProperty1<T, Collection<V>?>, values: Collection<V>, consistency: KandraConsistency? = null)
Link copied to clipboard
fun decrement(field: KProperty1<T, Long?>, partitionKeys: Map<String, Any>, by: Long = 1, consistency: KandraConsistency? = null)
Link copied to clipboard
fun delete(entity: T)
Link copied to clipboard
fun deleteAll(entities: List<T>)
Link copied to clipboard
fun deleteBy(block: QueryContext.() -> Unit)
Link copied to clipboard
fun deleteById(vararg keyValues: Any)
Link copied to clipboard
fun exists(block: QueryContext.() -> Unit): Boolean
Link copied to clipboard
fun find(block: QueryContext.() -> Unit): T?
Link copied to clipboard
fun findActive(): List<T>

Returns all rows not yet soft-deleted. Requires @SoftDelete(markerProperty = "...") on T — throws KandraSchemaException otherwise.

Link copied to clipboard
fun findAll(limit: Int? = null, block: QueryContext.() -> Unit): List<T>
Link copied to clipboard
fun findById(vararg idValues: Any, consistency: KandraConsistency? = null): T?
Link copied to clipboard
fun findPage(pageSize: Int, pageToken: String? = null, block: QueryContext.() -> Unit = {}): KandraPage<T>
Link copied to clipboard
fun increment(field: KProperty1<T, Long?>, partitionKeys: Map<String, Any>, by: Long = 1, consistency: KandraConsistency? = null)
Link copied to clipboard
fun <K, V> put(entity: T, field: KProperty1<T, Map<K, V>?>, entries: Map<K, V>, consistency: KandraConsistency? = null)
Link copied to clipboard
fun raw(cql: String, vararg params: Any?): List<Row>
Link copied to clipboard
fun rawQuery(query: KandraRawQuery): List<Row>
Link copied to clipboard
fun <V> remove(entity: T, field: KProperty1<T, Collection<V>?>, values: Collection<V>, consistency: KandraConsistency? = null)
Link copied to clipboard
fun save(entity: T, ttlSeconds: Int? = null, timestampMicros: Long? = null, consistency: KandraConsistency? = null)
Link copied to clipboard
fun saveAll(entities: List<T>, useBatch: Boolean = true)
Link copied to clipboard
fun saveIfNotExists(entity: T, serialConsistency: KandraConsistency = KandraConsistency.LOCAL_SERIAL): Boolean
Link copied to clipboard
fun saveWithNulls(entity: T, ttlSeconds: Int? = null)
Link copied to clipboard
fun update(old: T, new: T)
Link copied to clipboard
fun updateForce(entity: T)