我发现我自己需要一个事务的post提交挂钩。我正在使用事件存储,并且需要保证在事务提交之前不会发布事件,因为事件处理程序可能需要来自前一个事务的数据。
我正在使用带有JPA模块的Guice来连接所有东西。我想我可以很容易地通过更改guice-persist模块中的JpaLocalTxnInterceptor来添加一个钩子,我可以停止使用@Transactional并手动完成,但我更喜欢隐藏这个样板,有没有更好的解决方案?
发布于 2015-06-29 05:50:45
我的建议是添加一个自定义拦截器和一个自定义注释。您可以从复制现有的JpaLocalTxnInterceptor开始。
另一种解决方案是使用JTA并将DB和EventStore都包含到事务中。但话又说回来,分布式事务本身就是一个问题。
顺便说一下。Guice persist不支持JTA。Onami Persist将是一种选择。
https://stackoverflow.com/questions/28144625
复制相似问题