Pau*_*lga 4 java sorting spring hibernate jpa
因此,想法很简单,我需要一个后端排序和过滤URL,如下所示:
/users?find=Paul&sortBy=name:asc
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有此控制器方法:
@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")));
}
Run Code Online (Sandbox Code Playgroud)
这个扩展JpaRepository的UserRepository:
@Query("select u from User u where name like %?1%")
List<User> findByName(String name, Pageable pageable);
Run Code Online (Sandbox Code Playgroud)
我的问题是:我要在Controller本身中指定排序状态(升序/降序),但我希望在url中指定它,例如:
/users?find=Paul&sortBy=name:asc
Run Code Online (Sandbox Code Playgroud)
但现在它只对我有用
/users?find=Paul&sortBy=name
Run Code Online (Sandbox Code Playgroud)
并且它会自动以升序排序,因为我在Controller方法中指定了它。
请您这么友好地向我解释我该怎么做:)?
照顾自己!
您可以使用Direction.fromString(order)order可以为“ asc”或“ desc”的方法
为了命令你应该保持单独的参数
@RequestParam Optional<String> order
userRepository.findByName(find.orElse("_"),
new PageRequest(page.orElse(0),5,
Sort.Direction.fromString(order), sort.orElse("name")));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |