mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2026-11-11 14:33:19 +00:00
improvements in selectByIds of CommonExposedRepo
This commit is contained in:
1 parent
e4b619e050
commit
2b76ad0aa9
2 files changed
+8
-10
No files matched your search
+4
-10
@@ -7,15 +7,9 @@ interface CommonExposedRepo<IdType, ObjectType> : ExposedRepo {
|
||||
val ResultRow.asId: IdType
|
||||
val selectById: ISqlExpressionBuilder.(IdType) -> Op<Boolean>
|
||||
val selectByIds: ISqlExpressionBuilder.(List<IdType>) -> Op<Boolean>
|
||||
get() = { list ->
|
||||
if (list.isEmpty()) {
|
||||
Op.FALSE
|
||||
} else {
|
||||
var op = selectById(list.first())
|
||||
(1 until list.size).forEach {
|
||||
op = op.or(selectById(list[it]))
|
||||
}
|
||||
op
|
||||
}
|
||||
get() = {
|
||||
it.foldRight<IdType, Op<Boolean>?>(null) { id, acc ->
|
||||
acc ?.or(selectById(id)) ?: selectById(id)
|
||||
} ?: Op.FALSE
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user