我在一个项目中使用暴露,并且我有一个表可以将其称为具有两个属性的TableX
property1
和x
知道x
可为空
我在查询中添加了TableX.x.isNotNull()
,所以我可以忽略空行!。
我有Object1
,还有两个属性,如TableX
:property1
和x
知道x
在Object1中不为空
然后,当我从查询的行中创建Object1时,编译器会na绕x
,因为它不应该为null,并且我们从TableX接收到可为空的x。
因此,在Object1中设置!!
时,我已经添加了x
,因为我确定由于我添加的约束,查询将永远不会返回任何带有x is null
的行。
但是,我仍然收到KotlinNullPointerException
。那怎么可能呢?
我想到了MySQL
和exposed
之间的一些兼容性问题!但是找不到任何
val result = listOf<Object1>()
transaction {
val query = TableX.select {
TableX.property1.eq(123) and
TableX.x.isNotNull()
}
.fetchSize(1000)
result = query.map {
Object1(
property1 = it[TableX.property1],
x = it[TableX.x]!!
)
}
}
答案 0 :(得分:0)
在我现在工作的公司中,我面临着同样的问题。看来您已具备比赛条件。尝试在构建结果列表之前显式检查null
。至少您不会例外。