-2

我正在使用带有spring boot的angular 7,并且我使用mat-table,我不想在一次加载中加载数据库中的所有数据,我只想在点击mat-table中的下一页时加载数据。这张图片是我的垫子桌。

垫表图像

我怎么能在angular 7和spring boot中做到这一点,如果有人有解决方案,请给我,谢谢。

4

1 回答 1

1

JpaRepository其中Spring-data-jpa有一个Pageable概念,在您的回购实现JpaRepository中而不是CrudRepository(它在内部扩展PagingAndSortingRepository

你可以做这样的事情,

回购

public class FooRepository extends JpaRepository<FooClass, Long> {
}

服务

@Service
public class FooService {

  @Autowired
  private FooRepository fooRepo;

  public Page<FooClass> fetchPagedFoo(Integer page, Integer size) {
   return fooRepo.findAll(PageRequest.of(page, size)); 
  }
}

控制器

@RestController
public class FooController {

    @Autowired
    private FooService fooService;

    @GetMapping("/foo")
    public ResponseEntity getPagedFoo(
            @RequestParam(value = "pageIndex", defaultValue ="0") Integer page,
            @RequestParam(value = "size", defaultValue = "10") Integer size) {
        return ResponseEntity.ok(fooService.fetchPagedFoo(page, size));
    }
}

在上面如果你传递 0, 10 那么第一页 10 行将被返回,Page也将返回数据总数,你可以这样做Pagination

于 2019-07-11T06:06:02.573 回答