Repository navigation
v4.0.0
Adds an unpaginated listing operation alongside page, for process-internal consumers — exports,
reports, batch jobs — that today build a Page just to discard it via Pagination.unpaginated().
Why 4.0.0
EntityCrudProvider and OwnedEntityCrudProvider gain a new required internalList persistence
contract, the same way internalPage already is. Any class extending either of them
directly — outside the JPA, MongoDB, and Spring Data modules, which already implement it — needs to
add that method to keep compiling.
Added
freddy-cruder-core
ListProvider<OUTPUT>andOwnedListProvider<OWNER_ID, OUTPUT>— unpaginated counterparts of
PageProvider/OwnedPageProvider. Deliberately not composed intoReadProvider/
OwnedReadProvider, and not exposed by any controller: pagination support doesn't imply listing an
entire resource is sensible.EntityCrudProvider/OwnedEntityCrudProviderimplementListProvider/OwnedListProvider,
following the same path aspage— same projection, mapping, and lifecycle events.CrudOperation.LIST.
freddy-cruder-jpa
internalListinJpaCrudProvider,FilterableJpaCrudProvider, and
FilterableOwnedJpaCrudProvider, reusing the existing unpaginatedEntityListQueryconstructor.JpaProjectedCrudProvider/JpaOwnedProjectedCrudProviderimplementListProvider/
OwnedListProviderdirectly — no new abstract method needed, sincelistreuses the same
selection()/groupBy()/searchPredicate()hookspagealready does.
freddy-cruder-mongodb
internalListinMongoCrudProvider,FilterableMongoCrudProvider, and
FilterableOwnedMongoCrudProvider.MongoQueryHelpers.find(MongoCollection, Bson, Sort)— unpaginated overload.
freddy-cruder-spring-data
SearchEngine/SearchRepositorygain a native, unpaginatedfindAllBySearch(..., Sort)returning
List<T>directly — noPageable/Pageinvolved. A customSearchEngineimplementation must add
it too.internalListinSpringRepositoryCrudProvidercalls it directly.
freddy-cruder-spring-data-jpa
JpaSearchEngine.findAllBySearch(..., Sort)implements the native overload by reusing
EntityListQuerywithPageable.unpaged(sort)— an internal detail; the fragment method itself
takes and returns noPageable/Page.
freddy-cruder-spring-data-mongodb
MongoSearchEngine.findAllBySearch(..., Sort)implements the native overload viaQuery.with(Sort)
— noPageableat all, not even internally.
Fixed
freddy-cruder-spring-data
PeluwareToSpringAdapters.toPageablesilently dropped the requestedSortwheneverPagination
was unpaginated, since it returnedPageable.unpaged()instead ofPageable.unpaged(sort). Any
call topage(search, query, Pagination.unpaginated(), sort)on aSpringRepositoryCrudProvider
— the exact pattern this release'slist()replaces — returned results in an unspecified order,
ignoringsortentirely.
Migration
If you extend EntityCrudProvider or OwnedEntityCrudProvider directly (not through
FilterableJpaCrudProvider, MongoCrudProvider, or SpringRepositoryCrudProvider), implement the
new internalList method:
// EntityCrudProvider
protected List<ENTITY> internalList(@Nullable String search, @Nullable String query, Sort sort) {
// return every entity matching search/query, sorted
}