1

次のようなリクエストから得られる情報があります。

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

そして、オブジェクトがuidあり、フィルター値があるSpringでこれを処理する必要があります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);
}

しかし、これら 2 つの値については何も考慮していません。

uidフィールドに応じてデータをフィルタリングし、データをフィルタリングするには、何を変更すればよいabですか?

はオブジェクト内にuidあり、含むすべてのユーザーを選択する必要がありますuser iduseridab

どんな助けでも感謝します。

4

1 に答える 1

2

@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);
        }
于 2013-08-08T13:42:06.743 に答える