我是新来的Spring批我有一个大的主表。这个主表被合并到5个单独的表中。我的要求是我需要创建一个编写器,它将写入这5个单独的表。但这些写入程序将根据以下条件调用:例如:如果我有一个未在主表中设置的字段,我将调用2个写入程序并跳过其他3个写入程序。
我使用带有分类器的复合写入器来检查条件,但分类器只返回1个写入器。分类器可以返回多个作家吗?或者有其他类可以满足我的要求吗?
您可以创建一个自定义ItemWriter
,它结合了多个ItemWriter
来处理特定情况。例如,假设有两种情况需要不同的ItemWriter
。Case1需要写入table1和table2:
@Component
public class Case1ItemWriter implements ItemWriter<Foo> {
@Autowired
private JdbcBatchItemWriter writer1; //write to table1
@Autowired
private JdbcBatchItemWriter writer2; //write to table2
@Override
public void write(List<? extends T> items) throws Exception{
writer1.write(items);
wrtire2.write(items)
}
}
案例2需要写入表3和表4:
@Component
public class Case2ItemWriter implements ItemWriter<Foo> {
@Autowired
private JdbcBatchItemWriter writer3; //write to table3
@Autowired
private JdbcBatchItemWriter writer4; //write to table4
@Override
public void write(List<? extends T> items) throws Exception{
writer3.write(items);
wrtire4.write(items)
}
}
然后实现一个分类器,以确定不同的情况,以返回它们自己的ItemWriter:
@Component
public class MyClassifier implements Classifier<Foo ,ItemWriter<Foo>> {
@Autowired
private Case1ItemWriter case1ItemWriter;
@Autowired
private Case2ItemWriter case2ItemWriter;
@Override
public ItemWriter<Foo> classify(Foo foo){
if(foo.isBlabBlaBla()){
return case1ItemWriter;
}else{
......
return case2ItemWriter;
}
}
}
并将此分类器
配置为分类器CompositeItemWriter
。
我正在编写一个spring批处理作业,在其中一个步骤中,我为处理器编写了以下代码: null 欢迎任何暗示。
CompositeItemWriter:当我需要将项目平均地分给Writer时,似乎会将所有读取的项目传递给所有的Writer。 BacktoBackPatternClassifier:我并不真正需要分类器,因为我是均匀地拆分项目。 有没有另一种方式,让一个读者和多个作者? 或者我可以在Writer中手动创建线程?
我是Spring批处理的新手,目前正在处理一个新的批处理作业。我的批处理作业: 读取器:读取数据库中的记录(即5家公司的员工) 处理器:处理记录 5个writer:过滤并写入每个文件(即A公司的员工在A路径写入A公司文件,B公司的员工在B路径写入B公司文件),最后一个writer将A公司的所有离职员工写入D公司。 任务:将文件保存到数据库中。 目前,我正在使用CompositeItemWriter
我刚开始使用Spring批处理,我有一个特殊问题。我希望使用从3个不同的jpa查询中获取结果,并分别处理它们,然后使用将它们写入一个统一的XML文件。 对于eg,生成的XML看起来像是,
我目前正在编写spring batch,在这里我读取一个XML数据,对其进行处理,然后将处理结果作为< code>map传递 生成用于编组和解组的JAXB xjc类。JAXB生成的类如下所示。 JAXB员工类 Spring XML配置文件 处理器和写入器: 问题: XML文件对于每个固定的提交间隔都是重写的,很明显,XML文件是在每个提交级别之后创建的。但我必须附加所有
在我的项目中配置了以下内容: 加载文件时,我有重复的记录,但因为我配置了在下,Spring batch不应回滚记录,但仍将回滚记录。如果我从列表中删除,那么它将抛出异常。我们正在使用Spring批处理版本: 不希望回滚记录,但会回滚记录。