想知道是否有一种方法可以以宽松的方式处理转换错误。
给定一个返回 List[ModelObject] 的查询
如果检索到 5 个 DBObject,其中一个在转换为 ModelObject 时抛出 ConversionException,有没有办法返回 4 个可转换对象并为 1 个转换失败提供挂钩?
想知道是否有一种方法可以以宽松的方式处理转换错误。
给定一个返回 List[ModelObject] 的查询
如果检索到 5 个 DBObject,其中一个在转换为 ModelObject 时抛出 ConversionException,有没有办法返回 4 个可转换对象并为 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>