【问题标题】:Best practice to calculate an atribute in Jhipster design在 Jhipster 设计中计算属性的最佳实践
【发布时间】:2020-12-16 22:13:53
【问题描述】:

假设您创建了一个 Jhipster 赛车应用程序,其中我们有一个 Race 类(id、raceName、date、List -Participant-、averageTime),它由 Participant 对象组成(每个对象都有一个 id 和一个以秒为单位的比赛时间种族)。您想在时间公布(当他们越过终点线时)以及每次咨询比赛时计算赛车班的平均时间。为此,您会将计算这种平均值的方法放在哪里?

我看到了 3 个选项:

  1. 在显示 Race 组件时,您可以在 Angular 类的视图中带来数据并在每次显示时进行计算。
  2. 竞赛服务实施中的某个地方。
  3. 在域模型中,当 Race 对象被实例化时,带有 @Transient

如果您看到其他选项或最佳做法,请告诉我。谢谢

实体竞赛 {raceName 字符串, 时间瞬间, 平均时间双倍}

实体参与者{ 赛车时间整数}

关系 OneToMany { Race{participant(id)} to 参与者{race(id)} }

// SET PAGINATION OPTIONS: paginate all with pagination // paginate ChatMessage with infinite-scroll // 使用无限滚动分页

// SET SERVICE OPTIONS: service all with serviceImpl //service all 与服务类

// DTO: dto all with mapstruct

// 过滤:过滤 *

【问题讨论】:

    标签: spring-boot jhipster


    【解决方案1】:

    我的偏好是在服务层执行此操作,作为从域模型到 DTO 转换的一部分。您可以在计算平均值的Race 域模型中实现@Transient getter,并且(我认为)mapstruct 可以将其映射到DTO。或者您可以在您的服务方法中设置额外的 DTO 字段。 还有this,您可以在其中将计算放入映射器中。

    【讨论】:

    • 谢谢希望。你的意思是在这里:(github.com/Tonterias/mapstruct/blob/…)如果你能告诉我在哪里,我会很感激的。再次感谢
    • 希望,假设我不使用 MapStruct 和 DTO。那你会把它放在哪里?再次感谢。
    • @JorgeM.Nures,是的,我会这样做。您需要将它添加到 DTO 中任何您希望它出现的位置(也可能是 savefindOne)。如果您不使用 DTO/服务,那么我猜您需要实体中的瞬态字段,或者在它转换为 JSON 之前填充它,或者在 getter 中动态计算它,并希望杰克逊将它放入 JSON 中。
    • 嗨@Hopey One,我试图弄清楚如何去做,但我想我不知道如何在 Jhipster 中使用那些 DTO,而且我找不到任何关于如何做的例子它。你能帮帮我吗?谢谢
    • 我在这里找到了一个很棒的教程:stackabuse.com/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多