如何在学说 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?