2015-01-26 3 views
1

트랜잭션에서 커밋 후크가 필요합니다. 이벤트 저장소를 사용 중이며 이벤트 핸들러가 이전 트랜잭션의 데이터를 요구할 수 있기 때문에 트랜잭션이 커밋 될 때까지 이벤트가 공개되지 않도록해야합니다.Guice 확장 트랜잭션 후크를 제공하는 JPA 지원

JPA 모듈과 함께 Guice를 사용하여 모든 것을 연결합니다. 나는 꽤 쉽게 guice-persist 모듈에서 JpaLocalTxnInterceptor을 변경하여 후크를 추가 할 수 있다고 생각하는데, 나는 @Transactional을 사용하는 것을 멈출 수 있었고 수동으로 수행했지만이 보일러 플레이트를 숨기기를 선호했다.

답변

0

내 제안은 맞춤 인터셉터와 맞춤 주석을 추가하는 것입니다. 기존 JpaLocalTxnInterceptor를 복사하여 복사 할 수 있습니다.

다른 해결책은 JTA를 사용하고 DB와 EventStore를 트랜잭션에 포함시키는 것입니다. 그러나 다시 분산 된 트랜잭션은 자체적으로 문제가됩니다.

그건 그렇고. Guice는 JTA를 suoppert하지 않습니다. 오 나미 지속은 대안이 될 것입니다.