gpt4 book ai didi

java - Spring Data 中用于分页的动态原生 Sql 查询

转载 作者:行者123 更新时间:2023-11-30 06:59:14 25 4
gpt4 key购买 nike

我想获取整个 WHERE 子句作为 REST 参数并将其提供给 PagingAndSortingRepository。 Spring 可以吗?我知道我可以使用 native sql 来做到这一点,但我也想使用 spring 的分页功能。我认为 QueryDsl 对我不起作用,因为 where 子句是无限的,在这种情况下我必须解析所有参数。

Ex 请求:

localhost:8080/users?page=0&size=5&where=(firstname+eq+john+and+lastname+neq+terry)or(email+eq+john@gmail.com)

我希望它是这样的:

interface UserDAO extends PagingAndSortingRepository<User, Integer> {   

@Query(value = "SELECT * FROM User ?2",
countQuery = "SELECT count(*) FROM User ?2",
nativeQuery = true)
List<User> getUserList(Pageable pageable, String filter);
}

简而言之,我需要使用请求的 WHERE 子句来更改上述代码中的 filter 参数。任何类型的想法将不胜感激。

谢谢..

最佳答案

您还需要定义计数查询,如示例 50 所示。来自文档:

Note, that we currently don’t support execution of dynamic sorting for native queries as we’d have to manipulate the actual query declared and we cannot do this reliably for native SQL. You can however use native queries for pagination by specifying the count query yourself.

(强调我的)

关于java - Spring Data 中用于分页的动态原生 Sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41224526/

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