我想在datatable上显示大量数据。我的UI使用Angular2,后端使用spring REST API。如何使用分页和筛选器设计我的数据表,以便平滑地处理大量数据。我将如何设计我的后端来满足这个需求。
发布于 2017-06-09 23:32:45
您可以实现分页的REST服务。
假设我们想要在datatable中显示数据库中的所有用户。
我们将有一个具有以下签名的方法:
public ResponseEntity<PaginatedResponse<User>> getUsers(
@RequestParam("page") int page, @RequestParam("size") int size)
在这里,我们发送请求中的页码和每个页面的大小。
我们定义响应:
public class PaginatedResponse<T> {
private List<T> responseList;
private int pageNumber;
private int pageSize;
private int totalPageNumber;
}
在响应中,我们将获得当前页面的总页数和大小,以及它的索引。
对于数据层,您可以使用spring数据:
public interface UserRepository extends JpaRepository<User, Long>, QueryDslPredicateExecutor<User>
并声明提取可分页数据的方法:
@Query("select u, from User u")
Page<User> findUsers(final Pageable pageable);
请注意,您可以使用@Param
注释添加参数来过滤spring数据查询。
至于角度部分,您将不得不遍历http调用以获取数据,并且每次检查页面索引是否在范围内(即< totalPageNumber)。
https://stackoverflow.com/questions/44461193
复制相似问题