Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring批处理将值列表作为参数传递_Spring_Spring Batch - Fatal编程技术网

Spring批处理将值列表作为参数传递

Spring批处理将值列表作为参数传递,spring,spring-batch,Spring,Spring Batch,我想将id列表作为参数之一传递给Spring批处理。这有可能实现吗 提前感谢。如果您想从ItemReader传递列表,那么您必须首先获取JobParameters(您必须声明您的读卡器为步骤范围,另请参见) 您必须将列表作为参数添加到JobParameters中。由于JobParameters是不可变的,因此必须创建一个新对象 List yourList = .... JobParameters jp = (JobParameters) fac.getBean("params"); Map

我想将id列表作为参数之一传递给Spring批处理。这有可能实现吗


提前感谢。

如果您想从
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列表