如何在学说 ORM Symfony 4.1 中使用 array_agg?

Posted

技术标签:

【中文标题】如何在学说 ORM Symfony 4.1 中使用 array_agg?【英文标题】:How to use array_agg in doctrine ORM Symfony 4.1? 【发布时间】:2018-09-20 18:45:16 【问题描述】:

在我的 Symfony 4.1 项目中,我使用 postgresql 9.6 作为数据库。我正在对数据库事务使用学说 ORM 查询。 对于其中一项事务,我使用 array_agg() 来获取 2 行或更多行作为单个记录。 (组 concat 确实解决了我的目的) 但它给出了一个错误,因为 array_agg() 函数而不是方法。

谁能告诉教义中如何使用postgresql的特定功能?

【问题讨论】:

听起来你在滥用 ORM。该查询的确切目的是什么?是在报道吗?运行纯 SQL 并将结果包装到一个不错的结果类中? ORM 应该如何映射它不知道的附加列? 你可以在这里发布你的Entity 吗?如果您使用 getQuery()getResult() 等方法,Doctrine ORM 默认会聚合数据。 【参考方案1】:

ORM 不支持该函数,因为 ORM 很少构建聚合数组。你在这里做报道。 SQL 就是为此而生的。不需要ORM。

【讨论】:

【参考方案2】:

你可以使用这个包,它允许在 Symfony 中使用大部分 postgresql 函数来进行教义

https://github.com/martin-georgiev/postgresql-for-doctrine/blob/master/docs/INTEGRATING-WITH-SYMFONY.md

【讨论】:

以上是关于如何在学说 ORM Symfony 4.1 中使用 array_agg?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Symfony2,学说 2 中使用 @SqlResultSetMapping?

Symfony - 在服务中注入学说存储库

Symfony 2 实体连接或学说查询连接

当安装包而不是单个学说依赖项时,如何更新 orm-pack 的单个包?

Symfony2,学说和数据域

与复合唯一约束的关系(symfony + 学说)