使用Morphia

时间:2016-05-25 19:24:23

标签: java mongodb morphia

我需要Morphia来支持java 8 Optional的序列化。 Morphia显然不是特殊情况Optional,默认情况下,Morphia似乎将Optional序列化为{value: BLAH}并删除空Optional(因为我有dropEmpty或其他任何配置。

当我尝试重新补充包含Optional的{​​{1}}时,Morphia在映射逻辑的内容中失败并出现类强制转换异常:

enum

事实上,Morphia似乎正在丢失类型信息;当我实施自己的Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to com.mongodb.DBObject at org.mongodb.morphia.mapping.EmbeddedMapper.fromDBObject(EmbeddedMapper.java:160) 时,TypeConverter不包含MappedField信息,这是我通常会查找信息的信息。相反,我必须在单独的字段中存储有关内部值的类信息,以便结果看起来像: subClass

有更优雅的方式处理这个吗?这似乎是{"valueClassName" : "full.class.name" "value" : BLAH}的一个特例(尽管这显然取决于IterableConverter中存在的subClass值。

为了它的价值,'升级吗啡'不是一个选择,因为无论何时我们尝试这样做都会爆发出无数的错误。这与org.mongodb.morphia版本0.108

失败了

0 个答案:

没有答案