Используйте jdbcPollingChannelAdapter для выполнения нескольких запросов - PullRequest
0 голосов
/ 26 сентября 2019

Я новичок в весенней интеграции, у меня есть требования, аналогичные приведенным ниже, данные читаются из нескольких таблиц.Я пытаюсь реализовать jdbcpollingchanneladapter и jdbcMessageHandler, кто-нибудь может помочь с примером использования java DSL?

Читать список людей Для каждого человека получить список отделов Для каждого отдела получить список менеджеров Для каждого менеджера получитьсписок людей б.обрабатывать информацию людей c.записать информацию в CSV

Я использую MessageSource, чтобы перед запросами БД и сопоставления значений результатов в POJO с помощью Mapper.Как использовать результаты в качестве значений поиска для выполнения другого запроса.

@EnableIntegration
public class IntegrationConfig {

    @Autowired
    DataSource dataSource;

    @Autowired
    PlatformTransactionManager transactionManager;

    @Bean
    public MessageChannel FamilyChannel() {
        return new DirectChannel();
    }

    @Bean
    @InboundChannelAdapter(value = "FamilyChannel", poller = @Poller(fixedDelay = "1000"))
    public MessageSource<Object> familyNumberMessageSource() {
        JdbcPollingChannelAdapter jdbcPollingChannelAdapter = new JdbcPollingChannelAdapter(dataSource, NCFBulkOrderQuery.SELECT_NCF_BULK_ORDER_DATE);
        return jdbcPollingChannelAdapter;
    }

    @Bean
    public MessageHandler familyNumberHandler(){
        JdbcMessageHandler jdbcMessageHandler = new JdbcMessageHandler(dataSource, NCFBulkOrderQuery.SELECT_NCF_BULK_ORDER_DATE);
        return jdbcMessageHandler;
    }

    @Bean
    public IntegrationFlow jdbFlow() {
        return IntegrationFlows
                .from("FamilyChannel")
                .handle(familyNumberMessageSource(), "receive")
                .get();

    }

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...