繁体   English   中英

具有事务轮询器Java配置的Spring Integration JPA入站通道适配器

[英]Spring Integration JPA inbound channel adapter with transactional poller Java configuration

我正在尝试使用spring集成jpa-inbound-channel-adapter从数据库中获取记录,并对它们执行一组操作。 我还需要确保并发运行的实例在任何给定的时间点都不会多次获得相同的记录。

当我查看以下文档时,如何配置jpa-inbound-channel-adapter来处理事务,

<int-jpa:inbound-channel-adapter
    channel="inboundChannelAdapterOne"
    entity-manager="em"
    auto-startup="true"
    jpa-query="select s from Student s"
    expect-single-result="true"
    delete-after-poll="true">
    <int:poller fixed-rate="2000" >
        <int:transactional propagation="REQUIRED"
            transaction-manager="transactionManager"/>
    </int:poller>
</int-jpa:inbound-channel-adapter>

我还没有找到在Spring Boot应用程序中使用Java配置(没有xml配置)实现相同目的的任何方法。 我可以看到Java配置示例,但没有一个带有事务性。 任何指针都会有所帮助。

请参阅测试用例的配置

只需将.transactional()添加到端点:

    @Bean
    public IntegrationFlow pollingAdapterFlow(EntityManagerFactory entityManagerFactory) {
        return IntegrationFlows
                .from(Jpa.inboundAdapter(entityManagerFactory)
                                .entityClass(StudentDomain.class)
                                .maxResults(1)
                                .expectSingleResult(true),
                        e -> e.poller(p -> p.trigger(new OnlyOnceTrigger())
                                .transactional()))
                .channel(c -> c.queue("pollingResults"))
                .get();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM