是否有一种方法可以在DatabaseClient中根据不同条件链接多个条件

时间:2019-06-18 08:28:23

标签: kotlin spring-data-r2dbc

我正在尝试使用spring-data-r2dbc中的spring数据库客户端创建条件查询。

我现在有以下实现。

在这里,我必须确保至少有一个nonNull过滤器参数。这使得代码使用起来有些麻烦。

有没有一种方法可以定义一个空标准,然后根据条件将其添加到其中?

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()

0 个答案:

没有答案