我是春季批次的新手,我无法确定读者需要使用的模式。我需要创建类WSRequestClass
并将其发送到SOAP Web服务。
public class WSRequestClass{
private String data1;
private String data2;
private String data3;
private String data4;
private List<ClassB> dataList;
}
要创建WSRequestClass
是必要的:
data1
和data2
。data3
和data4
。 List<ClassB>
应该从更复杂的流程中创建。首先,我从表C中获取查询数据,但此查询的结果是List<ClassA>
。我需要处理List<ClassA>
的每个项目并将其转换为ClassB
,其中一些属性是从ClassA
计算的。 (大块模式,但没有作家)。
public class ClassA {
private Date date;
private BigDecimal amount1;
private BigDecimal amount2;
private String data;
//getters & setters
...
}
public class ClassB {
private Date date;
private BigDecimal amount1;
private BigDecimal amount2;
private BigDecimal amount3;
private BigDecimal amount4;
private String data1;
private String data2;
//getters & setters
...
}
我找到了simples chunk pattern和tasklets的多个例子,但没有一个遵循这个结构。此作业使用java配置和JdbcTemplate进行查询。 Web服务的开发称它已经完成,我唯一的问题是我必须从多个表中读取并有效地读取列表,将每个项目转换为ClassB
并设置为WsRequestClass
。
请指导我使用的模式,因为常见ItemReader
对我不起作用,而且我不知道如何实现允许我按照自己的意愿行事的自定义阅读器。
答案 0 :(得分:1)
我认为你错了。批处理中存在称为驱动查询模式的模式。在其中,您的读者基本上读取对象的键。然后使用处理器填写其他信息。您可以在Spring Batch文档中阅读有关此模式的更多信息:https://docs.spring.io/spring-batch/trunk/reference/html/patterns.html#drivingQueryBasedItemReaders