扩展Guice JPA支持以提供事务挂钩

时间:2015-01-26 03:59:45

标签: guice guice-persist

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

我正在使用带有JPA模块的Guice来连接所有内容。我想通过从guice-persist模块中更改JpaLocalTxnInterceptor可以很容易地添加一个钩子,我可以停止使用@Transactional并手动执行但是更喜欢隐藏此样板,是否有更好的解决方案?

1 个答案:

答案 0 :(得分:0)

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

其他解决方案是使用JTA并将DB和EventStore都包含在事务中。但是,分布式交易再次成为他们自己的问题。

顺便说一下。 Guice持续存在并不会使JTA变得更糟糕。 Onami Persist将是另一种选择。