【问题标题】:Spring batch: FieldSetMapper should set field to null instead of emptySpring批处理:FieldSetMapper应该将字段设置为null而不是空
【发布时间】:2014-10-16 15:26:14
【问题描述】:

我正在使用 Spring Batch 读取具有 7 字段的管道(| 分隔)分隔文件。我创建了一个名为 MyLineMapper 的类,它扩展了 spring 的 FieldSetMapper。此类将文件中提供的字段值映射到我的对象(XYZ 类型)。现在的问题是我在扩展 FieldSetMapper 的类中获得的 fieldSet 对象包含分隔值中不存在的字段的空值。

例如: 假设分隔文件格式如下:|ID|Country|City|Pin| 假设我在文件中提供以下行:|1|India| 如您所见,上述行不包含 City 和 Pin 的信息。因此,我希望 FieldSet 对象应该包含这两个字段(City 和 Pin)的 Null 值,而不是空字符串。我不想要空值,因为 Null 将帮助我知道该字段是否实际存在于文件中。

我怎样才能做到这一点?我是否需要扩展用于标记化的 DelimitedLineTokenizer ?或者这是一种简单的方法?

我们将不胜感激。

【问题讨论】:

    标签: spring-batch


    【解决方案1】:

    来自 FieldSetMapper javadoc

    自定义将 FieldSet 值转换为所需值的方式 注入原型的类型有多种选择。你 可以通过customEditors直接注入PropertyEditor实例 属性,或者您可以覆盖 createBinder(Object) 和 initBinder(DataBinder) 方法,或者您可以提供自定义 FieldSet 实施。

    根据您的目标 bean 的类型,转换是使用默认的 Spring 约定完成的。如果您需要其他类型的逻辑,请自行编写。

    【讨论】:

      猜你喜欢
      • 2013-07-12
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      • 2015-10-19
      • 2016-08-08
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      相关资源
      最近更新 更多