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

问题描述:

我有一个存储为布尔值的MongoDB集合中的遗留属性,但该属性已经发展并且它已成为一个对象。Morphia - 如何忽略加载属性,如果它是某种类型?

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

当我试图找到()与物业作为一个布尔值的文档,我得到:

java.lang.ClassCastException:java.lang.Boolean中不能转换为com.mongodb.DBObject !在org.mongodb.morphia.mapping.EmbeddedMapper.fromDBObject(EmbeddedMapper.java:162)〜[吗啡-1.0.1.jar:NA]

任何想法?谢谢

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

+0

太棒了!像一个魅力工作;-) – GCarbajosa

+0

好消息。很高兴我能帮上忙。甚至在我吃完早餐之前! :d – evanchooly