0

想知道是否有一种方法可以以宽松的方式处理转换错误。

给定一个返回 List[ModelObject] 的查询

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

4

1 回答 1

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>
于 2013-01-14T11:42:14.347 回答