spring-projects / spring-projects/spring-data-jpa
Support @EntityGraph for default methods that invoking underlying findAll [DATAJPA-1431]
Open
@odrotbohm is already working on this.
Since Dec 30, 2020.
in: querydsl
type: enhancement
- Dominant language
- Java
- Stars
- 3.3k
- Forks
- 1.6k
- PR merge metrics
- No merged PRs in 30d
Description
Sola opened DATAJPA-1431 and commented
Currently, if users want the following code to fetch roles.authorities, they have to annotate the @EntityGraph onto the findAll method, but it would be nice if @EntityGraph annotations on default (upper level) methods can override lower level query methods' annotation.
@JvmDefault
@EntityGraph(attributePaths = ["roles.authorities"])
fun query(username: String?, roles: Set<Int>?, enabled: Boolean, pageable: Pageable): Page<User> {
val query = BooleanBuilder()
query += QUser.user.enabled.eq(enabled)
if (username != null) {
query += QUser.user.username.containsIgnoreCase(username)
}
if (roles != null) {
roles.forEach {
query += QUser.user.roles.any().id.eq(it)
}
}
return findAll(query, pageable)
}
Affects: 2.1 GA (Lovelace)
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.
Assessment
This issue has not been assessed yet.