Spring Data JPA EntityGraph
Life without spring-data-jpa-entity-graph
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
Life with spring-data-jpa-entity-graph
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
// 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|
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.
"Making JPA Great Again" talk
This talk was given at Paris JUG in January 2019.
The slides are in english.
The video is in french:
This project was created following the discussion in Spring Data Tracker issue DATAJPA-749 - Context enabled JPA 2.1 @EntityGraph .