Is the only JPA-compliant way to do a multi-level fetch join to use entity graphs?
JPA 2.1 does not support fetch joins using an alias at all. JSR 338, 4.4.5.3 Fetch Joins says, "It is not permitted to specify an identification variable for the objects referenced by the right side of the FETCH JOIN clause, and hence references to the implicitly fetched entities or elements cannot appear elsewhere in the query. " (I know that HQL supports using an alias for nested fetch joins. [1][2]) Also in JSR 338, 4.4.5.3 Fetch Joins is: fetch_join ::= [ LEFT [OUTER] | INNER ] JOIN FETCH join_association_path_expression If I understand correctly, the definition of join_association_path_expression does not allow for join fetching a nested association using a path, as in: select c from Cat c join fetch c.father join fetch c.father.mother <= not supported by JPA or HQL (There is an open Jira for supporting nested join fetches using HQL: HHH-8206. [3]) Is there a JPA 2.0-compliant way to do this (without entity graphs)? Thanks, Gail [1] http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html_single/#queryhql-joins [2] https://docs.jboss.org/hibernate/orm/5.0/userGuide/en-US/html_single/#d5e1869 [3] https://hibernate.atlassian.net/browse/HHH-8206 _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev