Лучшая практика для расчета атрибута в дизайне Jhipster

Dec 17 2020

Представим, что вы создаете гоночное приложение Jhipster, в котором у нас есть класс Race (id, raceName, date, List -Participant-, averageTime), состоящий из объектов-участников (у которых есть идентификатор и время гонки в секундах для каждой гонки). Вы хотели бы рассчитать среднее время гоночного класса по мере того, как время публикуется (когда они пересекают финишную черту), и каждый раз, когда проверяется гонка. Для этого где бы вы поместили метод расчета такого среднего?

Я вижу 3 варианта:

  1. В представлении вашего класса angular, когда вы показываете свой компонент Race, вы можете приносить данные и вычислять их каждый раз, когда они отображаются.
  2. Где-то в реализации сервиса Race.
  3. В модели предметной области с @Transient при создании экземпляра объекта Race

Пожалуйста, если вы увидите другие варианты или передовой опыт, дайте мне знать. Спасибо

сущность Race {raceName String, time Instant, averageTime Double}

объект Участник {racingTime Integer}

связь OneToMany {Race {участник (id)} с участником {race (id)}}

// УСТАНОВИТЕ ОПЦИИ СТРАНИЦЫ: разбить все на страницы // разбить на страницы ChatMessage с помощью бесконечной прокрутки // разбить все на страницы с помощью бесконечной прокрутки

// УСТАНАВЛИВАЕМ ОПЦИИ СЕРВИСА: обслуживаем все с помощью serviceImpl // обслуживаем все с помощью serviceClass

// DTO: dto все с mapstruct

// ФИЛЬТРАЦИЯ: фильтр *

Ответы

3 HopeyOne Dec 17 2020 at 06:55

Я предпочитаю делать это на уровне сервиса как часть преобразования модели предметной области в DTO. Вы можете реализовать @Transientгеттер в Raceмодели предметной области, который вычисляет среднее значение, и (я думаю) mapstruct может сопоставить это с DTO. Или вы можете просто установить дополнительное поле DTO в своих методах обслуживания. Там же это , где вы можете поместить вычисление в вашем картографа.