spring-data-jpa
spring-data-jpa copied to clipboard
Support @EntityGraph for default methods that invoking underlying findAll [DATAJPA-1431]
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)