我有一个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通用解决方案
所以我的问题是: KMongo在这些术语中支持枚举吗?
发布于 2019-06-13 08:11:28
所以我终于找到了解决问题的办法。使用Jackson注解库,我可以以我需要的方式序列化和反序列化枚举。在我的例子中,我选择将它们作为String使用,以便KMongo知道如何使用它们。
@JsonFormat(shape = JsonFormat.Shape.STRING)
enum class Role {
user,
admin,
guest
}现在,我可以将属性声明为枚举类型,以便KMongo知道如何处理它们。
https://stackoverflow.com/questions/56236559
复制相似问题