SpringのPageableを使用してページングクエリを実装
3813 ワード
1.パッケージのインポート:
2.テストクラス:
3.controllerクラス:
4.デフォルトのPageable属性を入力することもできます(@PageableDefault注記を使用)
import org.springframework.data.domain.Pageable;
2.テストクラス:
@Test
public void whenQuerySeccess() throws Exception{
mockMvc.perform(
get("/user")
// , , 15 ,
.param("size","15")
.param("page","3")
.param("sort","age,desc")// get ,
.contentType(MediaType.APPLICATION_JSON_UTF8) // json utf8
).andExpect(status().isOk()) // 200 OK
.andExpect(jsonPath("$.length()").value(3)) // json 3
.andReturn().getResponse().getContentAsString();
}
3.controllerクラス:
@RestController
public class UserController {
@GetMapping("/user")
public List query(Pageable pageable){// spring pageable
System.out.println(pageable.getPageSize());// 15
System.out.println(pageable.getPageNumber()); // 3
System.out.println(pageable.getSort());//age: DESC
List users = new ArrayList<>();
/*
*/
return users;
}
}
4.デフォルトのPageable属性を入力することもできます(@PageableDefault注記を使用)
@RestController
public class UserController {
@GetMapping("/user")
public List query(@PageableDefault(page=2,size=17,sort="username,asc")Pageable pageable){// spring pageable
System.out.println(pageable.getPageSize());// 17
System.out.println(pageable.getPageNumber()); // 2
System.out.println(pageable.getSort());// username: DESC
List users = new ArrayList<>();
/*
*/
return users;
}
}