【发布时间】:2019-05-21 10:42:46
【问题描述】:
我有一个 mongo 集合,其中有一个名为 role 的字符串字段。尤其是该字段将始终使用以下三个选项之一填充:user、admin 或 guest。
这就是我决定创建枚举的原因,以便开发人员更容易使用它,同时将字符串值保留在数据库中。
我试图从我的集合中检索一个文档,期望 KMongo 能够从 String 解析为 Enum Role,反之亦然。
遗憾的是,KMongo 似乎无法做到这一点。
data class User(var role: Role, // 0 user, 1 admin, 2 guest
var email: String,
var password: String)
enum class Role{
user,
admin,
guest
}
当我试图通过_id 查找文档时,我收到了这条消息:
2019-05-21 11:39:01 [http-nio-8080-exec-1] 错误 c.p.p.c.SpringWebConfig$simpleMappingExceptionResolver$resolver$1 - Excepción general resolviendo una petición com.fasterxml.jackson.module.kotlin.MissingKotlinParameterException: [simple type, class com.foo.user.User] 值的实例化失败 由于缺少(因此为 NULL)值而导致的 JSON 属性角色 creator 参数角色,它是 [Source: de.undercouch.bson4jackson.io.LittleEndianInputStream@3195529c;位置: 275](通过引用链:com.foo.user.User["Role"])
所以我的问题是:KMongo 是否支持这些术语中的枚举?
【问题讨论】:
标签: mongodb kotlin enums kmongo