diff --git a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedKeyValueRepo.kt b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedKeyValueRepo.kt index d634ff2f58b..ddd7323d2e9 100644 --- a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedKeyValueRepo.kt +++ b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedKeyValueRepo.kt @@ -12,11 +12,13 @@ import org.jetbrains.exposed.sql.transactions.transaction open class ExposedKeyValueRepo( database: Database, keyColumnAllocator: ColumnAllocator, - valueColumnAllocator: ColumnAllocator + valueColumnAllocator: ColumnAllocator, + tableName: String? = null ) : StandardKeyValueRepo, ExposedReadKeyValueRepo( database, keyColumnAllocator, - valueColumnAllocator + valueColumnAllocator, + tableName ) { private val onNewValueChannel = BroadcastChannel>(Channel.BUFFERED) private val onValueRemovedChannel = BroadcastChannel(Channel.BUFFERED) @@ -24,8 +26,6 @@ open class ExposedKeyValueRepo( override val onNewValue: Flow> = onNewValueChannel.asFlow() override val onValueRemoved: Flow = onValueRemovedChannel.asFlow() - init { initTable() } - override suspend fun set(k: Key, v: Value) { transaction(database) { if (select { keyColumn.eq(k) }.limit(1).any()) { diff --git a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedReadKeyValueRepo.kt b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedReadKeyValueRepo.kt index 926ea41354e..652736b2c9b 100644 --- a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedReadKeyValueRepo.kt +++ b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedReadKeyValueRepo.kt @@ -10,13 +10,12 @@ open class ExposedReadKeyValueRepo( override val database: Database, keyColumnAllocator: ColumnAllocator, valueColumnAllocator: ColumnAllocator, -) : ReadStandardKeyValueRepo, ExposedRepo, Table() { + tableName: String? = null +) : ReadStandardKeyValueRepo, ExposedRepo, Table(tableName ?: "") { protected val keyColumn: Column = keyColumnAllocator() protected val valueColumn: Column = valueColumnAllocator() override val primaryKey: PrimaryKey = PrimaryKey(keyColumn, valueColumn) - init { initTable() } - override suspend fun get(k: Key): Value? = transaction(database) { select { keyColumn.eq(k) }.limit(1).firstOrNull() ?.getOrNull(valueColumn) } diff --git a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/onetomany/ExposedOneToManyKeyValueRepo.kt b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/onetomany/ExposedOneToManyKeyValueRepo.kt index 4f73866160b..44c80971a34 100644 --- a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/onetomany/ExposedOneToManyKeyValueRepo.kt +++ b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/onetomany/ExposedOneToManyKeyValueRepo.kt @@ -11,11 +11,13 @@ import org.jetbrains.exposed.sql.transactions.transaction open class ExposedOneToManyKeyValueRepo( database: Database, keyColumnAllocator: ColumnAllocator, - valueColumnAllocator: ColumnAllocator + valueColumnAllocator: ColumnAllocator, + tableName: String? = null ) : OneToManyKeyValueRepo, ExposedReadOneToManyKeyValueRepo( database, keyColumnAllocator, - valueColumnAllocator + valueColumnAllocator, + tableName ) { protected val _onNewValue: BroadcastFlow> = BroadcastFlow() override val onNewValue: Flow> @@ -27,8 +29,6 @@ open class ExposedOneToManyKeyValueRepo( override val onDataCleared: Flow get() = _onDataCleared - init { initTable() } - override suspend fun add(k: Key, v: Value) { transaction(database) { insert { diff --git a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/onetomany/ExposedReadOneToManyKeyValueRepo.kt b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/onetomany/ExposedReadOneToManyKeyValueRepo.kt index 15e4fa60acb..ce9a2be494a 100644 --- a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/onetomany/ExposedReadOneToManyKeyValueRepo.kt +++ b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/onetomany/ExposedReadOneToManyKeyValueRepo.kt @@ -9,8 +9,9 @@ import org.jetbrains.exposed.sql.transactions.transaction open class ExposedReadOneToManyKeyValueRepo( override val database: Database, keyColumnAllocator: ColumnAllocator, - valueColumnAllocator: ColumnAllocator -) : ReadOneToManyKeyValueRepo, ExposedRepo, Table() { + valueColumnAllocator: ColumnAllocator, + tableName: String? = null +) : ReadOneToManyKeyValueRepo, ExposedRepo, Table(tableName ?: "") { protected val keyColumn: Column = keyColumnAllocator() protected val valueColumn: Column = valueColumnAllocator()