【问题标题】:Morphia - How to ignore loading a property if it's of a certain type?Morphia - 如果属性是某种类型,如何忽略加载?
【发布时间】:2016-08-05 20:12:23
【问题描述】:

我在 MongoDB 集合中有一个旧属性,它存储为布尔值,但该属性已经发展并变成了一个对象。

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

当我尝试 find() 一个属性为布尔值的文档时,我得到:

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

有什么想法吗?谢谢

【问题讨论】:

    标签: java mongodb morphia odm


    【解决方案1】:

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

    【讨论】:

    • 好消息。很高兴我能帮助你。在我吃早餐之前! :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 2014-11-05
    相关资源
    最近更新 更多