首页 > 解决方案 > Spring Batch - 复合项目编写器,列表作为编写器的输入

问题描述

我需要写入 2 个表头和行表。阅读和处理后,我将结果保存到对象列表中。在编写器中,我需要从列表中获取每个对象并写入 Header 表(一行),获取插入行的主键的 ID,然后在插入期间将此键用作 Line 表的外键。

我在这里有两个问题: 1. 从列表中读取项目编写器中的列表。我使用以下 2 个链接来编写此内容: Spring Batch - Using an ItemWriter with Lists Writing List of Items using JdbcBatchItemWriter

但得到错误:

java.lang.NullPointerException:在 org.springframework.batch.item.database.JdbcBatchItemWriter.write(JdbcBatchItemWriter.java:186) 处为空 ~[spring-batch-infrastructure-4.2.1.RELEASE.jar:4.2.1.RELEASE]

  1. 如何实现一对多映射。建议的一种解决方案是编写自定义服务方法: Spring Batch - 一次写入 2 个表

从 writer 内部调用另一个服务方法是否正确?

谢谢,BR

标签: springmappingspring-batch

解决方案


推荐阅读