From 261d8827e37b5278ebdea928c9846fba7ec8d36a Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 16 Jun 2021 13:19:59 +0600 Subject: [PATCH] OneToMany fixes --- CHANGELOG.md | 4 ++++ .../repos/onetomany/OneToManyAndroidRepo.kt | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b14d5feb055..98e681e5881 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## 0.5.11 +* `Repos`: + * `Common`: + * Fixes in `WriteOneToManyRepo#add` + ## 0.5.10 * `Versions` diff --git a/repos/common/src/main/kotlin/dev/inmo/micro_utils/repos/onetomany/OneToManyAndroidRepo.kt b/repos/common/src/main/kotlin/dev/inmo/micro_utils/repos/onetomany/OneToManyAndroidRepo.kt index 31c7be0ac99..1cc184fc2b4 100644 --- a/repos/common/src/main/kotlin/dev/inmo/micro_utils/repos/onetomany/OneToManyAndroidRepo.kt +++ b/repos/common/src/main/kotlin/dev/inmo/micro_utils/repos/onetomany/OneToManyAndroidRepo.kt @@ -55,6 +55,17 @@ class OneToManyAndroidRepo( helper.blockingWritableTransaction { for ((k, values) in toAdd) { values.forEach { v -> + val kAsString = k.keyAsString() + val vAsString = v.valueAsString() + val isThere = select(tableName, + null, + "$idColumnName=? AND $valueColumnName=?", + arrayOf(kAsString, vAsString), + limit = limitClause(1) + ).use { it.moveToFirst() } + if (isThere) { + return@forEach + } insert( tableName, null,