1

我发现自己需要一个事务提交后挂钩。我正在使用事件存储,并且需要保证在提交事务之前不会发布事件,因为事件处理程序可能需要来自前一个事务的数据。

我正在使用带有 JPA 模块的 Guice 来连接所有内容。我想我可以很容易地通过更改JpaLocalTxnInterceptorguice-persist 模块来添加一个钩子,我可以停止使用@Transactional并手动执行它,但更愿意隐藏这个样板,有更好的解决方案吗?

4

1 回答 1

0

我的建议是添加自定义拦截器和自定义注释。您可以复制现有的 JpaLocalTxnInterceptor 来开始。

其他解决方案是使用 JTA 并将 DB 和 EventStore 都包含到事务中。但话又说回来,分布式事务对他们自己来说是个问题。

顺便一提。Guice 坚持不支持 JTA。Onami Persist 将是一个替代方案。

于 2015-06-28T21:50:45.270 回答