当我尝试使用Pageable请求从JpaRepository检索数据时,它仅从所有记录中返回10%。例如,我在MySQL数据库中有68条记录,而pageble请求仅返回前10条记录。当我尝试获取第二个结果集时,它返回空页面内容对象。
但是如果我在一个请求中请求100条记录,它将返回所有68条记录。
我也可以通过JpaRepository和PagingAndSortingRepository尝试一下。但结果相同
@Component
@Repository
public interface GRNHeaderDetailsRepo extends PagingAndSortingRepository<GrnHeader, GrnHeaderPrimaryKey> {
@Query("SELECT grn,ld FROM GrnHeader grn left join LocationDetails ld on grn.glocationcode = ld.locationcode WHERE grn.gdate BETWEEN ?1 AND ?2 AND (grn.gstatus ='G' OR grn.gstatus ='PG') AND (grn.grnheaderId.gsuppliercode LIKE %?3% OR grn.grnheaderId.gpono LIKE %?3% OR grn.grnheaderId.ggrnno LIKE %?3% OR grn.gdate LIKE %?3% OR grn.gtotal LIKE %?3% OR grn.gtotlinediscount LIKE %?3% OR grn.gtransactiontax LIKE %?3% OR grn.glocationname LIKE %?3% OR grn.gstatus LIKE %?3%)")
Page<Object[]> getGrnCountDetailsCompanyWithDate(Date Date1,Date date2, String search ,Pageable page);
}
如果有人可以解释原因,我将不胜感激。 谢谢!
**更新了**
Page<Object[]> GrnHeader = grnHeaderPagingRepo.getGrnCountDetailsCompanyWithDate(new Date(),new Date(),request.getParameter("search[value]"), PageRequest.of(Integer.parseInt(request.getParameter("start")),Integer.parseInt(request.getParameter("length")), Sort.by(Sort.Direction.ASC, sorting)));
**请求对象**
draw: 1
columns[0][data]: code
columns[0][name]:
columns[0][searchable]: true
columns[0][orderable]: true
columns[0][search][value]:
columns[0][search][regex]: false
columns[1][data]: po_no
columns[1][name]:
columns[1][searchable]: true
columns[1][orderable]: true
columns[1][search][value]:
columns[1][search][regex]: false
columns[2][data]: grn_no
columns[2][name]:
columns[2][searchable]: true
columns[2][orderable]: true
columns[2][search][value]:
columns[2][search][regex]: false
columns[3][data]: grn_date
columns[3][name]:
columns[3][searchable]: true
columns[3][orderable]: true
columns[3][search][value]:
columns[3][search][regex]: false
columns[4][data]: grn_amount
columns[4][name]:
columns[4][searchable]: true
columns[4][orderable]: true
columns[4][search][value]:
columns[4][search][regex]: false
columns[5][data]: outlet_name
columns[5][name]:
columns[5][searchable]: true
columns[5][orderable]: true
columns[5][search][value]:
columns[5][search][regex]: false
columns[6][data]: status
columns[6][name]:
columns[6][searchable]: true
columns[6][orderable]: false
columns[6][search][value]:
columns[6][search][regex]: false
columns[7][data]: details
columns[7][name]:
columns[7][searchable]: true
columns[7][orderable]: false
columns[7][search][value]:
columns[7][search][regex]: false
order[0][column]: 0
order[0][dir]: asc
start: 0
length: 10
search[value]:
search[regex]: false
_: 1562825012290
**第二页请求**
draw: 2
columns[0][data]: code
columns[0][name]:
columns[0][searchable]: true
columns[0][orderable]: true
columns[0][search][value]:
columns[0][search][regex]: false
columns[1][data]: po_no
columns[1][name]:
columns[1][searchable]: true
columns[1][orderable]: true
columns[1][search][value]:
columns[1][search][regex]: false
columns[2][data]: grn_no
columns[2][name]:
columns[2][searchable]: true
columns[2][orderable]: true
columns[2][search][value]:
columns[2][search][regex]: false
columns[3][data]: grn_date
columns[3][name]:
columns[3][searchable]: true
columns[3][orderable]: true
columns[3][search][value]:
columns[3][search][regex]: false
columns[4][data]: grn_amount
columns[4][name]:
columns[4][searchable]: true
columns[4][orderable]: true
columns[4][search][value]:
columns[4][search][regex]: false
columns[5][data]: outlet_name
columns[5][name]:
columns[5][searchable]: true
columns[5][orderable]: true
columns[5][search][value]:
columns[5][search][regex]: false
columns[6][data]: status
columns[6][name]:
columns[6][searchable]: true
columns[6][orderable]: false
columns[6][search][value]:
columns[6][search][regex]: false
columns[7][data]: details
columns[7][name]:
columns[7][searchable]: true
columns[7][orderable]: false
columns[7][search][value]:
columns[7][search][regex]: false
order[0][column]: 0
order[0][dir]: asc
start: 10
length: 10
search[value]:
search[regex]: false
_: 1562825012292
答案 0 :(得分:4)
PageRequest.of
的Javadoc状态:
/**
* Creates a new unsorted {@link PageRequest}.
*
* @param page zero-based page index.
* @param size the size of the page to be returned.
* @since 2.0
*/
public static PageRequest of(int page, int size) {
return of(page, size, Sort.unsorted());
}
您需要传递页码而不是行号作为第一个参数(第二个请求中的start: 1
)。否则,您将在基于0的索引中使用第10页,因此您应该有100多个行才能获取任何内容。