ObjectHydrator has bug in hydrate entities with relation to entity of this same class throught reference entity. Example Model:
- title (string)
- entitiesB (annotation: @ORM\OneToMany(targetEntity="EntityB", mappedBy="entityAFrom"))
- entityAFrom (annotation: @ORM\ManyToOne(targetEntity="EntityA", inversedBy="entitiesB"))
- entityATo (annotation: @ORM\ManyToOne(targetEntity="EntityA"))
- type (string)
Execution of dql query 'SELECT a, b, ba FROM EntityA AS a LEFT JOIN a.entitiesB AS b LEFT JOIN b.entityATo AS ba' with max results set to "1" and data in database:
id | title
1 | a
2 | b
id | entityAFromId | entityAToId | type
1 | 1 | 2 | type
I expected collection of EntityA object (size=1 becouse I set max results to 1) with hydrated entitiesB collection (size=1 becouse in db is only 1 record) and hydrated entityTo object. entitiesB property of entityTo object should be empty PersistCollection (ready to lazy load) but is null...
I can provide TestCase for this issue.