Package-level declarations

Types

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.CLASS])
annotation class CacheResult(val ttlSeconds: Int = 60, val maxSize: Long = 1000)

Enables Caffeine-backed findById caching.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class ClusteringKey(val order: ClusteringOrder = ClusteringOrder.ASC, val index: Int = 0)
Link copied to clipboard
Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class Column(val name: String)
Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class Counter

Marks a ScyllaDB COUNTER column. All non-key columns in a counter table must use this.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class CreatedAt

Auto-set to java.time.Instant.now on INSERT. Never updated by Kandra.

Link copied to clipboard
Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class LookupIndex(val tableSuffix: String, val consistency: LookupConsistency = LookupConsistency.BATCH)
Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class PartitionKey(val index: Int = 0)

Marks a partition key field. Use index for composite partition keys.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.CLASS])
annotation class ReadConsistency(val level: KandraConsistency)

Overrides the default read consistency level for this entity's table. Per-operation consistency overrides this annotation.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.CLASS])
annotation class ScyllaTable(val name: String, val gcGraceSeconds: Int = -1)
Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class SecondaryIndex

Creates a native ScyllaDB secondary index on this column.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class Sensitive

Marks a field as sensitive — never logged.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.CLASS])
annotation class SoftDelete(val ttlSeconds: Int = 86400, val markerProperty: String = "")
Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class Transient
Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.CLASS])
annotation class Ttl(val seconds: Int)

Sets a table-level default TTL in seconds. Lookup tables never inherit this TTL.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class UpdatedAt

Auto-set to java.time.Instant.now on every INSERT and UPDATE.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class Version

Marks the optimistic lock version column. Must be Long or Instant. Updates use LWT IF version = ?.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.CLASS])
annotation class WriteConsistency(val level: KandraConsistency)

Overrides the default write consistency level for this entity's table. Per-operation consistency overrides this annotation.