我在一个项目中使用暴露,我有一个表,让我们TableX
用两个属性
调用它,property1
并且x
知道它x
是可空的,我添加TableX.x.isNotNull()
到我的查询中,所以我可以忽略空行!
而且我Object1
还有两个属性TableX
:property1
并且x
知道x
在 Object1 中不为空
然后,当我从查询的行中创建 Object1 时,编译器会喋喋不休,x
因为它不应该为空,并且我们从 TableX 接收到一个可为空的 x。
所以我在 Object1 中!!
设置时添加x
了,因为我确信x is null
由于我添加的约束,查询永远不会返回任何行。
但是,我仍然收到KotlinNullPointerException
了一些时间。那么这怎么可能呢?
我想到了MySQL
and之间的一些兼容性问题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]!!
)
}
}