0

我目前正在使用AsyncItemWriter将处理后的学生详细信息输入写入我的数据库表中。我最近要求根据标准写入几个数据库表(如果学生在最后一年,也可以在单独的表中写入额外的数据)。

目前我定义了两个单独工作的 AsyncItemWriter Bean。尝试使用CompositeItemWriter,它实际上可以工作并使用两个委托写入适当的表。现在,只有在满足上述条件时,我才想致电第二位作家。

我尝试使用ClassifierCompositeItemWriter和我的Student类的自定义Classifier实现,当满足去年学生的条件时,它应该返回CompositeItemWriter ,否则调用单个AsyncItemWriter来存储学生数据。不幸的是,当调用ClassifierCompositeItemWriter的方法时,写入列表中的项目属于FutureTask类型,并且在调用时写入器失败并出现ClassCastException,因为它无法将FutureTask转换为我的Student模型。write()classify()

不幸的是,我目前手头没有代码,但尝试尽可能彻底。

4

1 回答 1

0

我尝试将 ClassifierCompositeItemWriter 与我的 Student 类的自定义 Classifier 实现一起使用,当满足去年学生的条件时,它应该返回 CompositeItemWriter,否则调用单个 AsyncItemWriter 来存储学生数据

这开始变得复杂而没有真正的好处。我会保持简单,并在实现中使用带有“if”的自定义编写器,对应于if the student is in their last year, also write in a separate table with additional data.

于 2020-04-20T20:36:05.013 回答