spring-projects / spring-projects/spring-data-commons
Refactor `PagingAndSortingRepository` and its reactive variants into fragment interfaces
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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