spring-projects / spring-projects/spring-data-commons

Refactor `PagingAndSortingRepository` and its reactive variants into fragment interfaces

Open
#2,505 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

theme: 3.1 type: enhancement
Dominant language
Java
Stars
838
Forks
730
PR merge metrics
No merged PRs in 30d

Description

With the introduction of repository fragments in Spring Data 2.0, we introduced fragments as the primary means for feature extensions. PagingAndSortingRepository, ReactiveSortingRepository, and RxJava3SortingRepository are subclasses of a CRUD repository and therefore limited in composition.

We want to cut the dependency to CRUD repository to not require using paging/sorting functionality to expose CRUD methods. The paging repository interfaces would subclass Repository only along with type variables for the domain type and identifier type.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate PagingAndSortingRepository, ReactiveSortingRepository, and RxJava3SortingRepository and read how repository fragments are used in Spring Data 2.0. Trace their current CRUD inheritance and the Repository type parameters before checking affected tests or implementations. Done means the paging and sorting interfaces compose independently from CRUD while preserving their domain and identifier types.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring
Domain
backend-api-design
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.