Doctrine2 DQL与不相关的表联接以获取两个实体

汤姆

我的DQL查询仅返回FROM对象,如果其他对象相关,则很好,但不是。

我的查询:

$query = $this->em->createQuery('SELECT c, s FROM MyBundle:Person c, MyBundle:Spot s 
JOIN s.geo_data g JOIN g.features f WHERE f.active = true AND 
ST_Distance(f.location, c.location) < :distance GROUP BY c, s');

这在SQL中非常有效,给了我所有景点以及位于他们之间的所有人:距离。但是在DQL中,它仅返回人员对象,并且由于在数据库级别上它们不相关,因此我无法获取正确的位置。

我的数据库设置正确,我使用的是PostGIS后端,并且地点和人员没有任何关系它们恰好在同一张地图上,我正在查询空间关系。

根据文档,从我的阅读来看,这是预期的行为,s正在被水合,但根本没有返回,很好!

我该如何教DQL退还我在SELECT中告诉我的内容?“我的意思是,别再成为聪明人”开关在哪里?

绒毛

如果它们不相关,则教义不能给您两个实体,因为如果两个实体相关,则您将获得第一个实体c,而您可以通过该关系得到s。

您可以尝试选择两个实体的所有字段,例如

SELECT c.location, ...,  s.geo_data, ...

这将为每个列提供一个数组,其中包含两个实体的所有字段。如果需要,也许您可​​以使用结果集映射来获取实体。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

COUNT = 0的Doctrine2 DQL问题

来自分类Dev

制定复杂的Doctrine2 DQL查询

来自分类Dev

2个不相关的表联接的优化

来自分类Dev

Doctrine2关联的获取器

来自分类Dev

在Doctrine2中跳过相关实体的持久化

来自分类Dev

在Doctrine2中跳过相关实体的持久化

来自分类Dev

Doctrine2类表继承实体ID

来自分类Dev

symfony2 doctrine2与实体的批处理错误

来自分类Dev

symfony2 doctrine2与实体的批处理错误

来自分类Dev

symfony2 doctrine2不刷新新实体

来自分类Dev

Symfony2,Doctrine2,实体映射

来自分类Dev

doctrine2 symfony2关系实体

来自分类Dev

使用Doctrine2和Postgresql的简单DQL请求

来自分类Dev

Doctrine2 DQL如何模拟Oracle LIMIT和OFFSET?

来自分类Dev

Doctrine2:基于实体类生成实体

来自分类Dev

对象中的doctrine2内部联接数据

来自分类Dev

多重联接查询构建器doctrine2

来自分类Dev

如何使用Doctrine2对相关的表记录进行计数

来自分类Dev

Doctrine2:一组实体的依赖图

来自分类Dev

如何扩展Doctrine2的实体存储库构造函数?

来自分类Dev

Doctrine2级联实体创建

来自分类Dev

如何检索Doctrine2实体的自定义columnDefinition?

来自分类Dev

如何优雅地登录Doctrine2实体

来自分类Dev

Doctrine2实体ManyToOne关系属性的默认值

来自分类Dev

具有多个实体的Doctrine2 OneToMany

来自分类Dev

我可以在Doctrine2中订购加入的实体吗?

来自分类Dev

实体映射注释中的Doctrine2 @ORM

来自分类Dev

Doctrine2实体自定义加入

来自分类Dev

Doctrine2实体中的一些逻辑