Saturday 15 January 2011

java - Spring Data PageImpl not returning page with the correct size? -



java - Spring Data PageImpl not returning page with the correct size? -

hi im learning spring mvc , spring info jpa , trying create new page using list of objects retrieved database. first elements db, convert stream , utilize lambda filter results. need page set number of elements, however, instantiating new pageimpl doesnt seem homecoming page right size.

here code:

list<produtos> listafinal; stream<produtos> stream = produtosrepository.findall().stream(); listafinal = stream.filter(p -> p.getprodnome().contains("uio")).collect(collectors.tolist()); long total = listafinal.size(); page<produtos> imp = new pageimpl<>(listafinal,pageable,total);

here's screenshot debugging:

note size in pageable object set 20 , understands needs 4 pages render 70 elements, returns whole list.

what missing?

edit answering comment made thomas:

thanks answer! understand how utilize page homecoming piece of data. code showed effort utilize lambda look filter collection. problem me want utilize java8's lambda query database via spring info jpa. im used vb.net's , entity function(x) query expressions , wondering how same spring jpa.

in repository, im using extends jparepository<produtos, integer>, querydslpredicateexecutor<produtos> gives me access findall(predicate,pageable). however, predicate not typed cant utilize p -> p.getprodnome().contains("uio") in query. obs: im using sql server , hibernate.

if understood code right, intent load records database , and split them x buckets collected in pageimpl, right?

thats not how used work. actual intent of pageable , page abstraction not having query info "slice" of info needed.

in case query info via page<x> page = repository.findall(pageable); , homecoming that. page holds records current page alongside additional info e.g., total number of records , whether there next page.

in client code can utilize info render list of records , generating next / prev links appropriately. note query page<x> result type issues 2 queries (1 determine overall total count query , 1 actual page data).

if don't need info total number of results still want able generate next link should utilize slice<x> homecoming type - since issues 1 query.

java spring spring-mvc spring-data spring-data-jpa

1 comment: