In addition to my last post about entity graph support in Hibernate:
The spec encourages fetching only those attributes which are part of an entity graph used as fetch graph (i. e. by using the hint javax.persistence.fetchgraph) and leave others unloaded even if they are declared EAGER. But “The persistence provider is permitted to fetch additional entity state beyond that specified by a fetch graph or load graph” (section 3.7.4 Use of Entity Graphs in find and query operations).
That said, Hibernate does not violate the spec.javax.persistence.loadgraph and javax.persistence.fetchgraph are effectively implemented in the same way. It would be an improvement to make javax.persistence.fetchgraph more strict, i. e. make attributes not part of the graph effectively LAZY. Please vote for https://hibernate.atlassian.net/browse/HHH-8776!