Расширение поддержки Guice JPA для обеспечения хуков транзакций
Я нуждаюсь в пост-фиксации транзакций. Я использую хранилище событий, и мне нужно гарантировать, что события не будут опубликованы до тех пор, пока транзакция не будет зафиксирована, поскольку обработчику событий могут потребоваться данные из предыдущей транзакции.
Я использую Guice с модулем JPA, чтобы связать все. Я думаю, что я мог бы довольно легко добавить крюк, изменив JpaLocalTxnInterceptor
из модуля guice-persist, я мог бы прекратить использование @Transactional
и сделать это вручную, но предпочел бы скрыть этот шаблон, есть ли лучшее решение?
1 ответ
Мое предложение состоит в том, чтобы добавить пользовательский перехватчик и пользовательскую аннотацию. Вы можете скопировать существующий JpaLocalTxnInterceptor для начала.
Другим решением является использование JTA и включение в транзакцию как БД, так и EventStore. Но с другой стороны, распределенные транзакции сами по себе являются проблемой.
Кстати. Guys упорствовать не suoppert JTA. Onami Persist будет альтернативой.