我有一个Pojo合作伙伴: 合作伙伴ID 列表
地址Pojo: 地址编号 地址, 市, 国家, 固定
我想在Spring Batch中创建平面文件 -文件将是 :PartnerId; AddressId; Address; City; Country; Pin
我正在获取带有ID和地址列表的合作伙伴Pojo
如何将FlatFileItemWriter与PartnerPojo一起使用 我的FlatFileItemWriterConfiguration配置:
DECLARE @abc varchar(max)= '\\Abc\Abc\Abc\Abc\Abc\Abc\ERROR.docx'
select SUBSTRING(@abc,LEN(@abc)-9,LEN(@abc) )
我在addressId上遇到错误
答案 0 :(得分:0)
您需要拼合数据,并按预期将输出文件中的平面项目列表传递给编写器。例如:
class Partner {
int id;
List<Address> addresses;
}
class Address {
int addressId;
String address,city,country,pin;
}
// create this Pojo to encapsulate flat data (as in the expected csv)
class PartnerAddress {
int partnerId, addressId;
String address,city,country,pin;
}
项目处理器将准备数据:
class PartnerItemProcessor implements ItemProcessor<Partner, List<PartnerAddress>> {
@Override
public List<PartnerAddress> process(Partner partner) {
List<PartnerAddress> partnerAddresses = new ArrayList<>();
for (Address address : partner.getAddresses()) {
PartnerAddress partnerAddress = new PartnerAddress();
partnerAddress.setPartnerId(partner.getId());
partnerAddress.setAddressId(address.getAddressId());
partnerAddress.setAddress(address.getAddress());
partnerAddress.setCity(address.getCity());
partnerAddress.setCountry(address.getCountry());
partnerAddress.setPin(address.getPin());
partnerAddresses.add(partnerAddress);
}
return partnerAddresses;
}
}
然后,编写者将收到PartnerAddress
的列表,并将其写入平面文件。
希望这会有所帮助。