JOIN FETCH for standard (non bytecode enhanced entities) fetches initialized entities.
The domain graph can be fully accessed outside a session.
JOIN FETCH for bytecode enhanced entities fetches not initialized entities and throws LazyInitializationException.
The domain graph accessed outside a session throws LazyInitializationException.
I attached a test test.zip . JPAHibernateJoinTest.
Errors out with byte code enhacement enabled (default - uncommented build section in main pom.xml).
Works fine without (comment build section in main pom.xml).