根据这篇文章,jOOQ 默认实现事务传播模式 NESTED:
是否可以将特定交易的传播模式设置为其他模式?
我使用了 Spring 的
TransactionTemplate
,效果很好:
transactionTemplate.propagationBehavior = TransactionDefinition.PROPAGATION_REQUIRES_NEW
transactionTemplate.execute {
dslContext.truncate(OUTBOX).execute()
}
但是纯粹使用jOOQ API也可以吗?比如:
dslContext.transaction { cfg ->
cfg.set(Settings()/* do something */)
}
您可以实现自己的
TransactionProvider
来覆盖 jOOQ 的开箱即用行为,或者使用 DefaultTransactionProvider
并将 nested
属性设置为 false
:
configuration.set(new DefaultTransactionProvider(connectionProvider, false));