2017-05-22 84 views
0

我正在构建一个Web应用程序,我需要跟踪某些事件,例如短信发送,发送或失败。为此我想使用Axonframework。我在官方网站上跟着axonframework教程,也从this website使用Axonframework基于特定事件检索domainevententry表中的数据

但我没有找到任何解决方案来从Axon本身创建的daomainevententry表中获取事件。我正在使用Java语言,Spring框架和MySql数据库来完成我的应用程序的开发。

请告诉我任何好的教程或解决方案。

回答

1

如果你正在使用JpaEventStorageEngine(例如,你有你的classpath spring-data-jpa和利用application.propertiesapplication.yml一个JPA持久性单元),轴突使用实体DomainEventEntry存储的事件。在你的数据库中,这些结果在表DOMAIN_EVENT_ENTRY或类似的东西中。

要从Spring访问它,你可以自己使用Spring-Data。定义一个Spring的数据存储库:

import org.axonframework.eventsourcing.eventstore.jpa.DomainEventEntry; 
import org.springframework.data.jpa.repository.JpaRepository; 

public interface DomainEventRepository extends JpaRepository<DomainEventEntry, Long> { 

} 

通过这样做,你会得到默认的访问方法,由该存储库查询。要进一步定制,您可以编写其他方法。请参考documentation of Spring Data了解如何操作。

也许你有兴趣查询事件一定骨料:

List<DomainEventEntry> findByAggregateIdentifier(String aggregateIdentifier); 

或特定类型:

List<DomainEventEntry> findByType(String type); 

探索更多,只是导航DomainEventEntry的层次结构,寻找有趣的领域。

希望这有助于

西蒙