【发布时间】:2022-07-11 23:54:58
【问题描述】:
我对以下示例中transactional() 的行为有疑问:
@Bean
IntegrationFlow myFlow(
EntityManagerFactory entityManagerFactory,
TransactionManager transactionManager
) {
return IntegrationFlows.from(MY_CHANNEL)
.routeToRecipients(route -> route
.recipientFlow(flow -> flow
.handle(Jpa.updatingGateway(entityManagerFactory)
.namedQuery(DELETE_EVERYTHING)))
.recipientFlow(flow -> flow
.handle(Jpa.updatingGateway(entityManagerFactory)))
.transactional(transactionManager))
.get();
}
我的想法是我首先删除数据库表的内容,然后立即用新数据填充同一个表。在此示例中,.transactional() 是否会确保仅在第二步(插入新数据)成功时才将第一步(删除)提交给数据库?对于这种行为,我可以参考文档的哪一部分?
【问题讨论】:
标签: spring-integration spring-transactions spring-integration-dsl