Doctrine orm 通过join DQL获取具有空关联的实体时的Null属性

Doctrine orm 通过join DQL获取具有空关联的实体时的Null属性,doctrine-orm,Doctrine Orm,当我使用带有连接的DQL来获取一个具有多个关联的实体时,如果没有元素通过关联链接到该实体,那么与实体相关的属性将填充为NULL,而不是空的ArrayCollections(实际上,它们根本没有被填充,并且保留默认的类属性,因为没有调用构造函数或方法) 例如: DQL: 所发生的事情是,在实体创建时,由于关联是从查询结果中提取的,所以与空连接结果相对应的空值将按原样传递给反射字段setValue方法,仅此而已(之后将忽略fetchAlias字段)(通过从select语句中删除主题),可以正确地将

当我使用带有连接的DQL来获取一个具有多个关联的实体时,如果没有元素通过关联链接到该实体,那么与实体相关的属性将填充为NULL,而不是空的ArrayCollections(实际上,它们根本没有被填充,并且保留默认的类属性,因为没有调用构造函数或方法)

例如:

DQL:


所发生的事情是,在实体创建时,由于关联是从查询结果中提取的,所以与空连接结果相对应的空值将按原样传递给反射字段setValue方法,仅此而已(之后将忽略fetchAlias字段)(通过从select语句中删除主题),可以正确地将多个关联启动为空集合。

是否添加要选择的实体?是否可以发布查询示例?我将用一些示例进行更新,但如果有关联的实体,我会选择(我想它在文档中称为fetch join或fetch alias)目前,我能做的唯一一件事就是修改所有检索集合的域方法,以检查集合是否正确初始化。
SELECT node, ownerLink, node_linkedEntity1, node_linkedEntity1_ownerLink, node_linkedEntity2, node_linkedEntity3 FROM MyNamespace\MyObject node LEFT JOIN node.ownerLink ownerLink LEFT JOIN node.entities1 node_linkedEntity1 LEFT JOIN node_linkedEntity1.ownerLink node_linkedEntity1_ownerLink LEFT JOIN node.entity2 node_linkedEntity2 LEFT JOIN node.entities3 node_linkedEntity3 WHERE node.root=:root_id AND node.id<>:root_id ORDER BY node.lft ASC