diff --git a/reference/en/modules/collection_mapping.xml b/reference/en/modules/collection_mapping.xml index aa9ac4307a..e86c38d755 100644 --- a/reference/en/modules/collection_mapping.xml +++ b/reference/en/modules/collection_mapping.xml @@ -198,8 +198,7 @@ kittens = cat.getKittens(); // Okay, kittens collection is a Set fetch (optional, defaults to select) Choose between outer-join fetching, fetching by sequential select, and fetching by sequential - subselect. Only one collection may be fetched by outer join per SQL - SELECT. + subselect. diff --git a/reference/en/modules/performance.xml b/reference/en/modules/performance.xml index 0b4ae67d43..db31be0827 100644 --- a/reference/en/modules/performance.xml +++ b/reference/en/modules/performance.xml @@ -217,26 +217,6 @@ Integer accessLevel = (Integer) permissions.get("accounts"); // Error!]]> (This is Hibernate's equivalent of what some ORM solutions call a "fetch plan".) - - - Join fetching for collections has one limitation: you may only set one collection - role per persistent class or query to be fetched per outer join. Hibernate forbids - Cartesian products when possible, SELECTing two collections per - outer join would create one. This would almost always be slower than two (lazy or - non-deferred) SELECTs. The restriction to a single outer-joined - collection applies to both the mapping fetching strategies and to HQL/Criteria - queries. - - - - If you run into this limitation, you should use subselect or batch fetching to - achieve acceptable performance. This is common when retrieving a tree of - collection-valued associations. - - - - There are no restrictions to join fetching of single-ended associations. - A completely different way to avoid problems with N+1 selects is to use the diff --git a/reference/en/modules/query_hql.xml b/reference/en/modules/query_hql.xml index 0cc8c075ef..61495a5748 100644 --- a/reference/en/modules/query_hql.xml +++ b/reference/en/modules/query_hql.xml @@ -148,9 +148,7 @@ - Note that, in the current implementation, only one collection role may be join fetched - in a query (more than one role will usually result in a cartesian product). Note also - that the fetch construct may not be used in queries called using + Note that the fetch construct may not be used in queries called using scroll() or iterate(). Finally, note that full join fetch and right join fetch are not meaningful.