1
0
mirror of synced 2025-03-14 00:26:08 +03:00

Clarify the impact of changing the fetch mode

Seems to work for one-to-many as well, but with a negative performance impact.
This commit is contained in:
Matthias Pigulla 2017-06-15 01:02:45 +02:00 committed by GitHub
parent fc67b398a1
commit 5a2a771173

View File

@ -935,7 +935,8 @@ the Query class. Here they are:
- ``Query#getResult()``: Retrieves a collection of objects. The
result is either a plain collection of objects (pure) or an array
where the objects are nested in the result rows (mixed).
where the objects are nested in the result rows (
).
- ``Query#getSingleResult()``: Retrieves a single object. If the
result contains more than one object, an ``NonUniqueResultException``
is thrown. If the result contains no objects, an ``NoResultException``
@ -1380,7 +1381,13 @@ Given that there are 10 users and corresponding addresses in the database the ex
SELECT * FROM address WHERE id IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
.. note::
Changing the fetch mode during a query is only possible for one-to-one and many-to-one relations.
Changing the fetch mode during a query mostly makes sense for one-to-one and many-to-one relations. In that case,
  all the necessary IDs are available after the root entity (``user`` in the above example) has been loaded. So, one
  query per association can be executed to fetch all the referred-to entities (``address``).
For one-to-many relations, changing the fetch mode to eager will cause to execute one query **for every root entity
  loaded**. This gives no improvement over the ``lazy`` fetch mode which will also initialize the associations on
a one-by-one basis once they are accessed.
EBNF