spring-projects / spring-projects/spring-data-jpa
Explore rewriting `QueryUtils.requiresOuterJoin` and `toExpressionRecursively` to use `PersistentEntity` meta-model
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 3.3k
- Forks
- 1.6k
- PR merge metrics
- No merged PRs in 30d
Description
We have accumulated quite a bit of code in both utility methods that operate on the level of JPA's Metamodel. For using the meta-model in JPQL queries, we've introduced JpqlUtils that basically duplicates functionality. We should explore whether we could rewrite this functionality based on our mapping-metadata by considering the JPA meta-model as metadata source where required.
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
Start by reading QueryUtils.requiresOuterJoin and toExpressionRecursively, then compare their Metamodel-based behavior with the related functionality in JpqlUtils. Investigate whether PersistentEntity mapping metadata can replace the duplicated logic while retaining JPA Metamodel support where required. Done means the scope and design are settled and the affected behavior remains covered by the project’s tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring
- Domain
- backend, database
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100