【发布时间】:2020-11-08 20:09:20
【问题描述】:
我正在尝试使用Exposed's DAO API 有条件地将一部分添加到我的 SQL 查询中。我的目标是:
SELECT * FROM table
WHERE column1 = 1
AND column2 = $value
AND column3 = 3
AND column2 = $value 部分的存在取决于过滤器。
我试过了:
TableDAO.find {
Table.column1 eq 1 and (
when (filter.value) {
null -> null // Type mismatch. Required: Expression<Boolean>. Found: Op<Boolean>?
else -> Table.column2 eq filter.value
}) and (
Table.column3 = 3
)
}.map { it.toModel() }
但我找不到返回空表达式或以某种方式从查询中排除该部分的方法。我能做的唯一解决方案是
null -> Table.column2 neq -1
但我觉得应该有更好的方法。
【问题讨论】:
标签: kotlin kotlin-exposed