Есть ли способ связать несколько критериев на основе различных условий в DatabaseClient - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь создать условный запрос, используя Spring DatabaseClient в spring-data-r2dbc.

Пока у меня есть реализация ниже.

Здесь я должен убедиться, что должен быть хотя бы один аргумент ненулевого фильтра. Что делает код немного громоздким для работы.

Есть ли способ, которым я могу определить пустой критерий, а затем добавить критерий к нему на основе условий?

fun search(filter: IssueFilter): Flux<Issue> =
        if (filter.issueType != null) {
            var criteria = filter.issueType.let { where("issueType").`is`(it) }
            criteria = filter.filePath.let { criteria.and("filePath").like("%$it%") }
            criteria = filter.endpoint.let { criteria.and("endpoint").like("%$it%") }

            db.select().from(Issue::class.java)
                    .matching(criteria)
                    .fetch().all()
        } else
            all()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...