Morphia - 如果它是某种类型,如何忽略加载 属性?

Morphia - How to ignore loading a property if it's of a certain type?

我在 MongoDB 集合中有一个遗留 属性 存储为布尔值,但 属性 已经进化并成为一个对象。

Morphia 有没有办法在这些属性为布尔值时忽略加载这些属性?如果它们是较新版本(对象),我只想检索它们,如果它们是布尔值,我只想忽略它们。

当我尝试使用 属性 作为布尔值查找 () 文档时,我得到:

java.lang.ClassCastException: java.lang.Boolean cannot be cast to com.mongodb.DBObject ! at org.mongodb.morphia.mapping.EmbeddedMapper.fromDBObject(EmbeddedMapper.java:162) ~[morphia-1.0.1.jar:na]

有什么想法吗?谢谢

您可以在方法上使用 @PreLoad 注释,然后从 DBObject 中删除该字段(如果它是布尔值)。然后 DBObject 的后续处理应该正确反序列化。你可以看一个例子here