gpt4 book ai didi

java - 我需要在 native 查询 Jpa 中使用 @RequestParam 在后端级别对数据进行排序

转载 作者:搜寻专家 更新时间:2023-11-01 01:59:17 25 4
gpt4 key购买 nike

所以,思路很简单,我需要有一个后端排序过滤URL,就这样吧:

/users?find=Paul&sortBy=name:asc

到目前为止我有这个 Controller 方法:

@GetMapping("/users")
public List<User> findUserByName(@RequestParam Optional<String> find,
@RequestParam Optional<Integer> page,
@RequestParam Optional<String> sort)
{
return userRepository.findByName(find.orElse("_"),
new PageRequest(page.orElse(0),5,
Sort.Direction.ASC, sort.orElse("name")));
}

还有这个扩展 JpaRepository 的 UserRepository:

@Query("select u from User u where name like %?1%")
List<User> findByName(String name, Pageable pageable);

我的问题是:我在 Controller 本身中指定了排序状态(升序/降序),但我希望它在 url 中指定,如下所示:

/users?find=Paul&sortBy=name:asc

但现在它只对我有用

/users?find=Paul&sortBy=name

它会自动按升序排序,因为我在 Controller 方法中指定了它。

请您解释一下我该怎么做:)?

保重!

最佳答案

您可以使用 Direction.fromString(order) 方法,其中 order 可以是“asc”或“描述”

对于订单你应该保持单独的参数

@RequestParam Optional<String> order


userRepository.findByName(find.orElse("_"),
new PageRequest(page.orElse(0),5,
Sort.Direction.fromString(order), sort.orElse("name")));

关于java - 我需要在 native 查询 Jpa 中使用 @RequestParam 在后端级别对数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57655079/

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