【问题标题】:FIlter data with Spring coming from request使用来自请求的 Spring 过滤数据
【发布时间】:2013-08-10 05:42:17
【问题描述】:

我有一些来自请求的信息,例如:

http://localhost:9080/online/accounts/list/usersQuery?filter=uid&value=ab

我必须在 Spring 中处理这个,其中对象是 uid,过滤器值是 ab

到目前为止,我在Spring 中有以下代码:

@RequestMapping(produces="application/json", value = "/usersQuery", method=RequestMethod.GET)
public @ResponseBody PagedResources<Resource<UserDetails>> listItemsSortQuery(@PageableDefault(size = 20, page = 0) Pageable pageable, PagedResourcesAssembler<UserDetails> assembler) {


    Page<UserDetails> lstUserDetails = userDetailsRepository.findAll(pageable);

    return assembler.toResource(lstUserDetails);
}

但它没有考虑这两个值。

为了根据字段 uid 过滤数据和过滤数据 ab ,我应该更改什么?

uiduser 对象中的user id,我需要选择所有具有包含abid 的用户

我们将不胜感激。

【问题讨论】:

  • 我不明白我必须在Spring中处理这个对象是uid并且过滤器值是ab。你的意思是?在@RequestMapping中,可以指定属性params = {"uid=ab"}
  • 我认为我的评论与您的​​用例无关。
  • 你想在你的方法中获取 uid 值来过滤你的数据吗?
  • 如果您不知道要使用哪个过滤器来从您的方法中获取它,那就更好了。

标签: java spring spring-mvc filter request


【解决方案1】:

尝试使用 @RequestParam 获取 uid 值

    @RequestMapping(produces="application/json", value = "/usersQuery", method=RequestMethod.GET)
    public @ResponseBody PagedResources<Resource<UserDetails>> listItemsSortQuery(@PageableDefault(size = 20, page = 0) Pageable pageable, PagedResourcesAssembler<UserDetails> assembler, 
  @RequestParam("filter")String filter, @RequestParam("value")String value) {


        Page<UserDetails> lstUserDetails = userDetailsRepository.findByFilter(pageable, filter, value);

        return assembler.toResource(lstUserDetails);
    }

编辑:

在您的存储库中,您需要一种过滤数据的方法,即

    public interface UserDetailsRepository extends JpaRepository<UserDetails, Long> {
           @Query("SELECT u FROM UserDetails u WHERE LOWER(?1) = LOWER(?2)")
           Page<UserDetails> findByFilter(String filter, String value, Pageable pageable);
        }

【讨论】:

  • 您的 userDetailsRepository 中没有任何方法来过滤您的数据吗?以上编辑
  • 我在代码中编辑了一个错误,pageable是最后一个参数。立即尝试
  • 不,您的过滤器必须是这种方法中的一列
  • 此时需要知道要过滤的列的名称。您可以在调用此方法之前重命名过滤器名称或转换该名称
猜你喜欢
  • 1970-01-01
  • 2011-03-25
  • 2020-11-14
  • 2017-11-12
  • 1970-01-01
  • 2014-04-14
  • 2021-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多