Spring批处理将值列表作为参数传递
我想将id列表作为参数之一传递给Spring批处理。这有可能实现吗Spring批处理将值列表作为参数传递,spring,spring-batch,Spring,Spring Batch,我想将id列表作为参数之一传递给Spring批处理。这有可能实现吗 提前感谢。如果您想从ItemReader传递列表,那么您必须首先获取JobParameters(您必须声明您的读卡器为步骤范围,另请参见) 您必须将列表作为参数添加到JobParameters中。由于JobParameters是不可变的,因此必须创建一个新对象 List yourList = .... JobParameters jp = (JobParameters) fac.getBean("params"); Map
提前感谢。如果您想从
ItemReader
传递列表,那么您必须首先获取JobParameters
(您必须声明您的读卡器为步骤范围,另请参见)
您必须将列表作为参数添加到JobParameters中。由于JobParameters是不可变的,因此必须创建一个新对象
List yourList = ....
JobParameters jp = (JobParameters) fac.getBean("params");
Map map=params.getParameters();
map.put("yourList", list);
params=new JobParameters(map);
launcher.run(job, params);
你想做的是不可能的 从文档: 批处理作业参数的域表示形式。只有 以下类型可以是参数:String、Long、Date和Double。这个 标识标志用于指示参数是否用作 作业实例标识的一部分 您可能会尝试将id列表写入逗号分隔的字符串,并将其作为单个参数传递,但请注意,当存储在DB中时,它会被删除。你要么增加这个限制,要么用另一种方法 也许您可以解释为什么需要传递ID列表