gpt4 book ai didi

java - Spring Batch ItemReader 处理树结构文件

转载 作者:行者123 更新时间:2023-12-01 10:17:45 25 4
gpt4 key购买 nike

我正在尝试读取固定长度的文本文件并使用 spring Batch 将其寄存器导入数据库,但输入文件的常规布局是嵌套的,类似于(添加制表只是为了简化可视化):

FILE HEADER
ENTERPISE1 HEADER
DEPARTMENT1 HEADER
WORKER1
WORKER2
DEPARTMENT1 FOOTER
DEPARTMENT2 HEADER
WORKER3
DEPARTMENT2 FOOTER
ENTERPRISE1 FOOTER
ENTERPRISE2 HEADER
DEPARTMENT3 HEADER
WORKER4
DEPARTMENT3 FOOTER
ENTERPRISE2 FOOTER
.
.
.
FILE FOOTER

必须将文件导入到包含表和关系的数据库中。

TABLE       RELATION   TABLE 

ENTERPRISE (ONETOMANY) DEPARTMENTS
DEPARTMENT (ONETOMANY) WORKERS

在我实现的其他 Spring Batch 项目中,我们使用具有相同布局寄存器的文件,其中的字段引用它们所属的关系。在这种情况下,寄存器的类型由该行第一列上的“id”标识,并且关系由“树”结构标识。是否有任何 Spring 开箱即用的 ItemReader 可以帮助完成此任务?我得到的解决方案是构建一个自定义 ItemReader,它读取企业寄存器并继续读取构建部门和工作人员对象的行,并返回一个 Enterprise 对象,其中所有部门和工作人员立即写入数据库,但我不知道是否可以当工作人员和部门数量过多时会进行扩展(使用 JPA 写入数据库)。

预先感谢您的帮助。

最佳答案

你可以读两遍。首先,读取行,添加到数据库。第二步,再次读取,将关系更新到数据库中,将企业和部门的值保存在自定义ItemReader中。

关于java - Spring Batch ItemReader 处理树结构文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35800549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com