Spring - 结果时没有数据小于页面大小 -

时间:2017-09-07 11:32:02

标签: java hibernate spring-data-jpa

在JPARepository中我创建了一个通过KeyWord获取数据的方法:

那是我的界面:

@Query(value="select p from Poeple p where name like :x")
public Page<Poeple> searchByMc(@Param( value = "x")String mc, Pageable pageable );

在我的服务中,我收到请求并将此方法称为:

    @RequestMapping(value="/poeples", method=RequestMethod.GET)
public Page<Poeple> listPoeples(@RequestParam(name="mc") String mc, @RequestParam(name="page", defaultValue="0" ) int page, @RequestParam(name="size", defaultValue="5" )int size){
    mc = "%"+ mc + "%";
    return poepleRepository.searchByMc(mc, new PageRequest(page, size,new Sort(Sort.Direction.ASC, "name"))); 
}

我的问题是,当我只有一两个结果时,我的响应内容为TotalContent但内容数组没有任何数据。

我从Angular App中调用此类,看起来像这样:

    var myApp = angular.module('myApp',[]);

myApp.controller('PoepleController', function($scope, $http) {
  $scope.mc = '';
  $scope.poeples = [];
  $scope.page=1;
  $scope.size=10;

  $scope.SearchPoeple = function(){
      $http.get("http://localhost:8080/poeples?page="+ $scope.page+"&size="+$scope.size+"&mc="+$scope.mc)
      .then(function(data){
          $scope.poeples = data.data.content;
      }, function(err){
          console.log(err);
      });
  }

});

这是我的回答:

{content: [], last: true, totalPages: 1, totalElements: 3, size: 10, number: 1, first: false,…}
content
:
[]
first
:
false
last
:
true
number
:
1
numberOfElements
:
0
size
:
10
sort
:
[{direction: "ASC", property: "name", ignoreCase: false, nullHandling: "NATIVE", ascending: true,…}]
totalElements
:
3
totalPages
:
1

就像你可以看到我有3result但内容数组是空的。

由于

1 个答案:

答案 0 :(得分:1)

我找到了解决方案,我提出了这个问题,因为我认为像我这样的初学者会犯错:

第一页是第0页

就像我们在回复中看到的那样,我得到了结果first : false

因为我们必须在Angular Code中纠正

$scope.page = 0

我希望这可以提供帮助!