我正在使用带有spring boot的angular 7,并且我使用mat-table,我不想在一次加载中加载数据库中的所有数据,我只想在点击mat-table中的下一页时加载数据。这张图片是我的垫子桌。
我怎么能在angular 7和spring boot中做到这一点,如果有人有解决方案,请给我,谢谢。
我正在使用带有spring boot的angular 7,并且我使用mat-table,我不想在一次加载中加载数据库中的所有数据,我只想在点击mat-table中的下一页时加载数据。这张图片是我的垫子桌。
我怎么能在angular 7和spring boot中做到这一点,如果有人有解决方案,请给我,谢谢。
在 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。