2017-05-22 4 views
0

Je construis une application web où j'ai besoin de suivre un événement tel que l'envoi, la livraison ou l'échec d'un SMS. Pour cela, je veux utiliser Axonframework. J'ai suivi didacticiel axonframework sur le site officiel et aussi de this websiteRécupération des données de la table domainevententry en fonction d'un événement particulier en utilisant Axonframework

mais je n'ai trouvé aucune solution pour récupérer les événements de la table daomainevententry créée par Axon lui-même. J'utilise le langage Java, le framework Spring et la base de données MySQL pour le développement complet de mon application.

Veuillez me dire tout bon tutoriel ou une solution pour cela.

Répondre

1

si vous utilisez JpaEventStorageEngine (par exemple, vous avez spring-data-jpa sur votre classpath et configuré une unité de persistance JPA en utilisant application.properties ou application.yml), Axon utilise l'entité DomainEventEntry pour stocker les événements. Dans votre base de données, cela donne des entrées dans le tableau DOMAIN_EVENT_ENTRY ou quelque chose de similaire.

Pour y accéder depuis Spring, vous pouvez utiliser Spring-Data vous-même. Définir un référentiel Spring-Data:

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

public interface DomainEventRepository extends JpaRepository<DomainEventEntry, Long> { 

} 

En ce faisant, vous obtiendrez des méthodes d'accès par défaut à une requête à partir de ce référentiel. Pour plus de personnalisation, vous pouvez écrire des méthodes supplémentaires. Veuillez consulter le documentation of Spring Data pour savoir comment procéder.

Probablement vous êtes intéressé par l'interrogation d'événements pour un certain total:

List<DomainEventEntry> findByAggregateIdentifier(String aggregateIdentifier); 

ou par type spécifique:

List<DomainEventEntry> findByType(String type); 

Pour explorer plus, juste naviguer dans la hiérarchie du DomainEventEntry et chercher champs intéressants.

Hope this helps,

Simon