使用具有 JdbcBatchItemWriters 的 CompositeItemWriter 将不同的对象类型写入不同的表

发布于 2025-01-11 10:06:53 字数 761 浏览 0 评论 0原文

我有一个像这样的嵌套对象,其中数据源是相同的。但是,我需要写入不同的表。这是我的对象的结构。这可能吗?

  class Project {
      ProjectItem projectItem;
      ItemOwner owner;
  }
  @Bean 
  JdbcBatchItemWriter projectItemWriter(DataSource datasource){
      return new JdbcBatchItemWriter<ProjectItem> {
      ... etc
  }
  
  @Bean 
  JdbcBatchItemWriter itemOwnerWriter(DataSource datasource){
      return new JdbcBatchItemWriter<ItemOwner> {
      ... etc
  }
  
   @Bean
   CompositeItemWriter<Project> txnWriter() {
    return new CompositeItemWriterBuilder<Department>()
            .delegates(projectItemWriter(null),
                    itemOwnerWriter(null))
            .build();
  }

我的用例是独特的,因为我需要根据对象类型以某种方式写入不同的表。这可能吗。如果是这样我怎样才能实现这一目标?

I have a nested object like this where the datasource is the same. However, I need to write to different tables. Here is the structure of my object. Is this possible?

  class Project {
      ProjectItem projectItem;
      ItemOwner owner;
  }
  @Bean 
  JdbcBatchItemWriter projectItemWriter(DataSource datasource){
      return new JdbcBatchItemWriter<ProjectItem> {
      ... etc
  }
  
  @Bean 
  JdbcBatchItemWriter itemOwnerWriter(DataSource datasource){
      return new JdbcBatchItemWriter<ItemOwner> {
      ... etc
  }
  
   @Bean
   CompositeItemWriter<Project> txnWriter() {
    return new CompositeItemWriterBuilder<Department>()
            .delegates(projectItemWriter(null),
                    itemOwnerWriter(null))
            .build();
  }

My use case is unique as I need to somehow write to different tables based on the object type. Is this possible. and if so how can I achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甩你一脸翔 2025-01-18 10:06:53

改用 JPA 解决方案。我需要编写所有嵌套项目,所以我选择使用 JPA

Used a JPA solution instead. I needed to write all the nested items so I chose to use JPA

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文