我正在尝试使用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()