使用mongo spring-data宽松地处理转换异常(跳过/忽略)

时间:2012-03-20 17:39:45

标签: mongodb spring-data

想知道是否有办法可以轻松地处理转换错误。

给定一个返回List [ModelObject]

的查询

如果检索到5个DBObject,其中一个在转换为ModelObject时抛出ConversionException,有没有办法返回4个可转换对象并为1转换失败提供挂钩?

1 个答案:

答案 0 :(得分:1)

有点晚了,但这个答案可能有助于别人的搜索

我同意在政策基础上这样做会很好 - 目前,如果您收到单个转换错误,则根本没有列表。我认为有些用例是有效的需求。

但是,既然你不能,你需要为你的ModelObject注册一个自定义转换器,它可以宽松地转换......

public class DBObjectToModelObjectConverter implements Converter<DBObject,ModelObject>{

    public ModelObject convert(DBObject s) {
        ... Read from the DBObject into your ModelObject and work around the bad data
    }
}

然后将其注册为bean定义中的自定义转换器。类似的东西:

<bean id="lenientModelReadConverter" class="com.my.DBObjectToModelObjectConverter"/>

<mongo:custom-converters>
   <mongo:converter ref="lenientModelReadConverter"/>
</mongo:custom-converters>