gpt4 book ai didi

java - JHipster 按实体字段搜索实体

转载 作者:行者123 更新时间:2023-11-30 02:05:12 25 4
gpt4 key购买 nike

我有锦标赛实体。他与奖项实体具有 OneToOne 关系。获奖实体已备案“金额”。因此,如果我想要搜索奖金介于两个值之间的锦标赛,我该如何使用 JHipster QueryService 来做到这一点?

最佳答案

基于您使用 QueryService 的事实,我假设您启用了 Filtering option生成实体时。要查询 Prize 金额在两个值之间的 Tournament 实体,需要添加一些内容。

TournamentQueryService 中,添加以下内容来构建 prize.amount 字段的规范:

if (criteria.getPrizeAmount() != null) {
specification = specification.and(buildReferringEntitySpecification(criteria.getPrizeAmount(), Tournament_.prize, Prize_.amount));
}

TournamentCriteria 中,为 prizeAmount 过滤器添加一个字段:private DoubleFilterprizeAmount;。还要添加 getter 和 setter。

现在您可以通过 Swagger 测试请求(在菜单管理 -> API 下)并根据奖金金额字段过滤锦标赛。

如果要在客户端进行这个查询,需要在HTTP请求中添加两个参数:

  • prizeAmount.greaterOrEqualThan
  • prizeAmount.lessOrEqualThan

您可以将它们添加到 query 调用中,如下所示,这将返回奖金金额 >= 1 和 <= 5 的锦标赛(示例为 Angular):

loadAll() {
this.tournamentService.query({
'prizeAmount.greaterOrEqualThan': 1,
'prizeAmount.lessOrEqualThan': 5
}).subscribe(
(res: HttpResponse<ITournament[]>) => {
this.tournaments = res.body;
},
(res: HttpErrorResponse) => this.onError(res.message)
);
}
<小时/>

如果您希望 TournamentDTO 将奖金金额包含为字段,则需要在 TournamentDTO 中添加 prizeAmount 字段(添加字段和 getter/setter)。您还需要在 TournamentMapper 中添加 @Mapping(source = "prize.amount", target = "prizeAmount") 以将奖品数据映射到 中的该字段>锦标赛DTO

关于java - JHipster 按实体字段搜索实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51565096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com