JpaItemReader用一个特定的值处理每个元素



在我的批处理过程中,必须选择sql数据库中的数据并将其导出为xml文件。因此,我必须为一个父元素选择所有数据,以便能够将父节点和所有子节点导出为xml。

我有一个表,像下面的例子:

|key|parent|child|
------------------
|yxc|par001|chi01|
|xcv|par001|chi02|
|cvb|par002|chi03|
|vbn|par003|chi04|
|bnm|par003|chi05|

现在我要选择每一个父元素和它的子元素。这些应该依次处理。对于上面的示例表,它应该是:par001->par002par003。导出的xml应该如下所示:

<par001>
<chi01></chi01>
<chi02></chi02>
</par001>
<par002>
<chi03></chi03>
</par002>
...

我如何选择数据以便我可以一个接一个地处理每个父元素?这是可能的与JpaItemReader?

我将把这个问题分为两步:

  • 步骤1执行select distinct(parent) from your_table并将结果存储在作业执行上下文中(结果是字符串或id的列表,而不是整个项,因此将它们存储在执行上下文中以便与下一步共享它们是很好的)
  • 步骤2从执行上下文中读取父id,并使用项读取器遍历它们。项处理器在将已富集的项传递给StaxEventItemWriter
  • 之前,会用它的子项充实每个项。

相关内容

  • 没有找到相关文章

最新更新