【问题标题】:Conditional validation of format or required property in BeanioBeanio 中格式或所需属性的条件验证
【发布时间】:2025-12-10 02:45:01
【问题描述】:

我需要根据 beanmapper 配置中的其他字段有条件地验证格式或 required=true/false。 示例:

<stream name="stream1" format="fixedlength" minlength="101" maxlength="101">
  <record name="record1" class="a.b.c.SomeClassName">
    <field name="updateType" required="true" length="1" regex="A|C" />
    <field name="firstName" required=? length="50" format=?/>
    <field name="lastName" required=? length="50" format=?/>
  </record>
</stream>

条件场景 1:对于 updateType="A",我需要 firstName 不为空(不是所有空格,因为这是固定长度格式记录),对于 updateType="C",firstName 必须全为空白。

条件场景2:对于firstName=some value,lastName也必须有一些值(非空白)

如何在 Beanio 中实现这一点?我正在使用 spring-batch 3x 来执行我的工作。

【问题讨论】:

    标签: spring formatting field conditional bean-io


    【解决方案1】:

    我无法为此获得任何 BeanIO 实用程序,开箱即用。我现在处理这个问题的方式是在 spring 批处理器中执行这些条件验证。

    【讨论】: