gpt4 book ai didi

java - 是否可以在 Spring Data Rest 中使用和组合 WHERE 子句?

转载 作者:行者123 更新时间:2023-12-01 23:59:17 25 4
gpt4 key购买 nike

我正在使用 Spring Boot、Spring Data 编写一个应用程序。我正在尝试实现基于不同过滤器参数的过滤功能。

我发现了 Spring Data REST 框架,它开箱即用地支持基本的过滤操作,例如:

/myEntities?field1=value1&field2=value2&sort=field2,desc&size=10&page=2

在本例中,我们仅按 2 个字段进行过滤,无需任何额外的 where 子句。

但是,如果我需要一个更复杂的过滤器,其中包含不同数量的 where 子句、顺序、实体限制,该怎么办?结果查询可能如下所示:

SELECT * FROM table
WHERE field1 != `value1` and (field1 != ` value2 `OR (field1 = `value3` AND filed2 < 3))
AND field2 != 99

是否可以使用 Spring Data Rest 的内置功能(将所有这些内容作为 http 参数发送)来实现不同 where 子句的组合?

最佳答案

您应该能够自定义存储库,以拥有包含所有必需参数的搜索方法。然后,它们将在搜索资源下暴露给 Spring Data Rest,并包含所有查询参数。

类似于:

@RestResource(path = "weirdFilter", rel = "weirdFilter")
@Query(value = "SELECT * FROM table
WHERE field1 != :value1 and (field1 != :value2 OR (field1 = :value3 AND field2 < 3))
AND field2 != 99")
public Page<Stuff> findByWeirdFilter(@Param("value1") String value1, @Param("value2") String value2, @Param("value3") String value3, Pageable p);

关于java - 是否可以在 Spring Data Rest 中使用和组合 WHERE 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58186691/

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