Doctrine 2 - ORM
  1. Doctrine 2 - ORM
  2. DDC-2340

Using Criteria matching on non-initialized collections ignore changes made on loaded entities

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.3
    • Fix Version/s: 2.3.3
    • Component/s: None
    • Security Level: All
    • Labels:
      None

      Description

      Given:

      • you have a non initialized collection (association between entities)
      • you have loaded some entities that are in that collection and changed some fields (without flushing)

      If you do a matching using a Criteria on the collection (http://docs.doctrine-project.org/en/latest/reference/working-with-associations.html#filtering-collections), then the Criteria will be executed through a DB query. But the fields you changed are not updated in the DB, so if you filter/order on those fields, then the result of the filter() will be incorrect.

      However, if your collection was initialized, the Criteria matching will be done in memory on the ArrayCollection and the result will be correct.

      So we have the problem for Criteria filtering on non-initialized collections.

        Activity

          People

          • Assignee:
            Benjamin Eberlei
            Reporter:
            Matthieu Napoli
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: