gpt4 book ai didi

spring-batch - 使用 Spring Batch 读取一条记录/项目并写入多条记录/项目

转载 作者:行者123 更新时间:2023-12-04 00:50:56 25 4
gpt4 key购买 nike

我做了一些搜索,但找不到任何示例/示例。

我有一个要求,从一个表(输入)中读取地理坐标,处理以生成与坐标相关联的 POI。因此,一个地理坐标将导致一个或多个 POI 需要插入到另一个表中(输出)。

我目前正在使用 JdbcCursorItemReader 和 JdbcBatchItemWriter 读取一项/记录并写入一项/记录。还有一个 ItemProcessor 可以为给定的地理坐标生成 POI。

自定义 JdbcBatchItemWriter 是否可以帮助我实现这一目标?

有什么想法吗? TIA。

最佳答案

如果您只想将项目传播到不同的作者(读取重复输出),您可以使用现有的 CompositeItemWriter

但我不确定您的处理器是否会生成不同的项目类型,或者您是否想将一种复杂项目类型的内容传播给多个作者,对于这些情况,您可以使用稍微更改的版本 multiline-record-writer问题

public class MultiOutputItemWriter implements ItemWriter<Object> {

private JdbcBatchItemWriter<ClassFoo> delegateFoo;
private JdbcBatchItemWriter<ClassBar> delegateBar;

public void write(List<? extends Object> items) throws Exception {
// if you have different types of items
// check Object Class
// add to new List<Classfoo>
// call delegate e.g. delegateFoo.write(List with ClassFoo);
//
// or if you have complex objects
// same procedure as above, but with
// add to new List<Classfoo> with item.getClassFoo
}
}

如果您使用 FlatFileItemWriter,请不要忘记 register the delegates as ItemStreams (因此 Spring 批次将为您打开/关闭它们)

关于spring-batch - 使用 Spring Batch 读取一条记录/项目并写入多条记录/项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7894445/

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