【发布时间】:2020-04-03 01:37:42
【问题描述】:
我有一个包含地址列表的 Person 对象。我的 Spring Batch 应用程序将 Person JSON 记录转换为 Person POJO,并将它们写入数据库。
通常,我会使用 JdbcBatchItemWriter,但我发现它仅限于写入 2 个单独的表。我需要写入人员和地址表。
Hibernate 可以一步完成,但我在 Spring Bathc 中没有看到类似的功能。
这个 SO 问题Multiple itemwriters in Spring batch 建议使用 CompositeItemWriter 但问题是,我希望我的地址表包含一个名为 Person_id 的列,以将地址链接回 Person。我将无法通过 2 次写入来做到这一点。
有什么建议吗?当然,Batch 可以满足更复杂的写入
【问题讨论】:
-
你可以在你的ItemWriter中使用hibernate,在里面调用你的PersonService来保存所有的数据,还是有什么问题?
-
@KacperWolkowski 不幸的是我不能介绍 Hibernate
-
这不会使@KacperWolkowski 无效;使用 SB 组合您的对象,并使用 PersonService 使用您的技术(hibernate、jdbc 或您用于持久性的任何其他技术)将其持久化
-
@LucaBassoRicci 他建议在 ItemWriter 中使用 Hibernate。根据我的问题,ItemWriter 只写入一个数据库表。
-
是的。但他也建议在
ItemWriter中拨打PersonService#save(Person)的电话。在PersonService中,您可以使用您喜欢的技术。
标签: java spring-batch writers