如果使用嵌套属性查询,则总是返回null,我不知道为什么,只需跟踪官方网站文档文档链接。
database.getCollection<User>().findOne(User::auth / Auth::ssaid eq p.ssaid, User::auth / Auth::password eq p.password) 没有嵌套的属性查询--这一切都很好。
database.getCollection<User>().findOne(User::lastlogin eq p.lastlogin)模型类代码
data class Auth(val password: String, val ssaid: String, val localLastLogin: String)
data class User(
@BsonProperty(useDiscriminator = true) val auth: Auth,
val lastLogin: String = Instant.now().toString(),
val members: List<Member> = emptyList(),
val channels: List<Channel> = emptyList()
) : Data()发布于 2021-09-12 22:06:13
您需要按以下方式使用@field:BsonProperty:
data class User(
@field:BsonProperty(useDiscriminator = true) val auth: Auth,
val lastLogin: String = Instant.now().toString(),
val members: List<Member> = emptyList(),
val channels: List<Channel> = emptyList()
) : Data()原因是有多个Java元素是从对应的Kotlin元素生成的,因此在生成的Java字节码中有多个可能的注释位置。因此,您需要明确这一点。更多细节这里。
https://stackoverflow.com/questions/69154644
复制相似问题