参数始终返回null的Get方法



我正在尝试使用@GetMapping进行搜索查询使用JPA和SpringBoot

这是控制器使用的方法:

@GetMapping("/search{min_price}{max_price}{text}")
public Optional<Product> searchProducts(@PathVariable(required = false) Integer min_price,
@PathVariable(required = false) Integer max_price,
@PathVariable(required = false) String text
) {
Optional<Product> products = productRepository.SearchProduct(min_price, max_price, text);
return products;
}

这里是我在存储库中进行的@Query:(我将@Param名称更改为?X,问题仍然存在(

@Query("SELECT P FROM Product P " +
"where (P.name like CONCAT('%',lower(?3),'%') or P.description like CONCAT('%',lower(?3),'%')) " +
"and (?2 is null or P.price <= ?2) " +
"and (?1 is null or P.price >= ?1)")
Optional<Product> SearchProduct(@Param("max_price") Integer min_price,
@Param("min_price") Integer max_price,
@Param("text") String text);

我是第一次使用H2数据库,不知道是不是?X是使用其中变量的正确方式。(在PL-SQL中,我使用:X(。

当我得到回报时,回报总是";空";在Postman 中

这是我制作的get的一个例子;搜索min_ price=1&max_ price=200&text=prod";数据库有5个条目,如果我直接在DB 2中使用这些值进行搜索,则结果符合标准。

通过/分隔路径参数

@GetMapping("/search/{min_price}/{max_price}/{text}")

并更新您的客户端请求以匹配,或者使用@RequestParam代替

public Optional<Product> searchProducts(@RequestParam Integer min_price,
@RequestParam Integer max_price,
@RequestParam String text)

相关内容

  • 没有找到相关文章

最新更新