Spring Data JPA only supports EntityGraph through annotations.
Thus, for a repository method, you must select at most one EntityGraph before compilation.
This prevents you from choosing the best EntityGraph considering the runtime context 💔
Thanks to spring-data-jpa-entity-graph, you can choose EntityGraph at runtime!
This choice is elegantly made by passing EntityGraph, as an argument, to any Spring Data JPA repository method 😍
Example:
// This will apply 'Product.brand' named EntityGraph to findByLabel
productRepository.findByLabel("foo", EntityGraphs.named("Product.brand"));
// This will apply 'Product.supplier' named EntityGraph to findByLabel
productRepository.findByLabel("foo", EntityGraphs.named("Product.supplier"));
Now run to the documentation !
This library follows the Spring Data JPA versionning semantic.
spring-data-jpa branches | Latest spring-data-jpa-entity-graph version | Documentation |
---|---|---|
2.0.x | 2.0.x documentation | |
1.11.x | 1.11.x documentation | |
1.10.x | 1.10.x documentation |
Example: if you were using spring-data-jpa 1.10.13
in your project, you would need to select any spring-data-jpa-entity-graph 1.10.x
. Thus spring-data-jpa-entity-graph 1.10.14
would be eligible.
Slides of the talk Making JPA Great Again given at Paris JUG in January 2019 are available at https://cosium.github.io/making-jpa-great-again/
This project was created following the discussion in Spring Data Tracker issue DATAJPA-749 - Context enabled JPA 2.1 @EntityGraph .