使用Axonframework基于特定事件从domainevententry表中检索数据

时间:2017-05-22 08:47:45

标签: java spring-boot axon

我正在构建一个Web应用程序,我需要跟踪一些事件,如短信发送,传送或失败。为此,我想使用Axonframework。我在官方网站和this website

上都遵循了axonframework教程

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

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

1 个答案:

答案 0 :(得分:1)

如果您正在使用JpaEventStorageEngine(例如,您在类路径上有spring-data-jpa并使用application.propertiesapplication.yml配置了JPA持久性单元),Axon正在使用实体{ {1}}存储事件。在您的数据库中,这些会导致表DomainEventEntry中的条目或类似的内容。

要从Spring访问它,您可以自己使用Spring-Data。定义Spring-Data Repository:

DOMAIN_EVENT_ENTRY

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

您可能有兴趣查询特定聚合的事件:

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

public interface DomainEventRepository extends JpaRepository<DomainEventEntry, Long> {

}

或按特定类型:

List<DomainEventEntry> findByAggregateIdentifier(String aggregateIdentifier);

要了解更多内容,只需导航List<DomainEventEntry> findByType(String type); 的层次结构并寻找有趣的字段。

希望这有帮助,

西蒙