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



我正在构建一个Web应用程序,我需要在其中跟踪一些事件,例如短信发送,交付或失败。为此,我想使用 轴框架 .我已经在官方网站上和这个网站上遵循了轴框架教程

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

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

如果您正在使用JpaEventStorageEngine(例如,您在类路径上spring-data-jpa并使用application.propertiesapplication.yml配置了JPA持久性单元(,Axon正在使用实体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> {
}

通过这样做,您将获得从此存储库查询的默认访问方法。对于进一步的自定义,您可以编写其他方法。有关如何执行此操作,请参阅Spring Data的文档。

您可能有兴趣查询某个聚合的事件:

List<DomainEventEntry> findByAggregateIdentifier(String aggregateIdentifier);

或按特定类型:

List<DomainEventEntry> findByType(String type); 

要探索更多,只需浏览DomainEventEntry的层次结构并寻找有趣的字段。

希望这有帮助,

西蒙

最新更新