gpt4 book ai didi

java - 如何使用spring boot来处理不同的搜索?

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

使用 Spring Data jpa 在 Spring Boot 中创建搜索功能的最佳实践是什么?

@GetMapping("/search")
public List<Hotel> getAllByCriteria(@RequestParam MultiValueMap<String, String> criteria) {
if (criteria.containsKey("cityPublicId")) {
String cityPublicId = criteria.getFirst("cityPublicId");
if (criteria.containsKey("amenity")) {
List<String> amenities = criteria.get("amenity");
return svc.findAllByCityAndAmenities(cityPublicId, amenities);
}
return svc.findAllByCity(cityPublicId);
}
//currently only support one amenity filtration
else if (criteria.containsKey("amenity")) {
return svc.findAllByAmenities(criteria.get("amenity"));
}
return null;
}

目前我必须确定所有可能的标准组合才能使用相应的方法,是否有通用的方法来处理所有条件?或者至少不会对所有可能的组合进行硬编码。

PS:如果我想按多个设施过滤结果,可以使用 findByAmenitiesContains(set) 吗?酒店实体拥有一套便利设施。我是否必须使用 @query 创建自定义查询?

谢谢。

最佳答案

您基本上有以下选择:

  • 使用 custom method 以编程方式根据输入数据创建查询。这为您提供了最大的灵 active ,但也需要最多的工作。

  • Use a specification 。几乎相同的灵 active 和几乎相同的工作量。

  • Use query by example 。工作量很少,灵 active 有限。

关于PS:The capabilities of query derivation are well documented .

关于java - 如何使用spring boot来处理不同的搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47447028/

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