Bonnes pratiques pour calculer un attribut dans la conception Jhipster

Dec 17 2020

Imaginons que vous créez une application de course Jhipster où nous avons une classe Race (id, raceName, date, List -Participant-, averageTime) qui est composée d'objets Participant (qui ont un identifiant et un temps de course en secondes pour chaque course). Vous souhaitez calculer le temps moyen de la classe de course au fur et à mesure que les temps sont publiés (lorsqu'ils franchissent la ligne d'arrivée) et à chaque fois qu'une course est consultée. Pour cela, où mettriez-vous la méthode de calcul d'une telle moyenne?

Je vois 3 options:

  1. Dans la vue de votre classe angulaire, lorsque vous montrez votre composant Race, vous pouvez apporter des données et les calculer à chaque fois qu'elles sont affichées.
  2. Quelque part dans l'implémentation du service de course.
  3. Dans le modèle de domaine avec un @Transient lorsque l'objet Race est instancié

S'il vous plaît, si vous voyez d'autres options ou une meilleure pratique, faites-le moi savoir. Merci

entity Race {raceName String, time Instant, averageTime Double}

Entité Participant {racingTime Integer}

relation OneToMany {Race {participant (id)} à Participant {race (id)}}

// FIXER LES OPTIONS DE PAGINATION: paginer tout avec pagination // paginer ChatMessage avec défilement infini // paginer tout avec défilement infini

// DÉFINIR LES OPTIONS DE SERVICE: service tout avec serviceImpl // service tout avec serviceClass

// DTO: dto all avec mapstruct

// FILTRAGE: filtre *

Réponses

3 HopeyOne Dec 17 2020 at 06:55

Ma préférence est de le faire dans la couche de service dans le cadre de la conversion du modèle de domaine en DTO. Vous pouvez implémenter un @Transientgetter dans le Racemodèle de domaine qui calcule la moyenne et (je pense) que mapstruct pourrait mapper cela au DTO. Ou vous pouvez simplement définir le champ DTO supplémentaire dans vos méthodes de service. Il y a aussi ceci où vous pouvez mettre le calcul dans votre mappeur.