我有一个Symfony2应用程序,其中包含Doctrine作为ORM。在我的应用程序中,我有两个具有一对多关系的实体。一个实体是User
,许多实体是Item
。它们的关系配置低于:学说对一对多关系提出了许多疑问
用户:
oneToMany:
items:
targetEntity: App\Bundle\ItemBundle\Entity\Item
fetch: EAGER
mappedBy: user
项目:
manyToOne:
user:
targetEntity: App\Bundle\UserBundle\Entity\User
fetch: EAGER
inversedBy: items
joinColumn:
name: user_id
referencedColumnName: id
的问题是,当我试图让Users
列表及其Items
,学说创建单独的查询为每个用户提取它的项目。
查询本身是很简单的:
$entities = $em->getRepository('AppUserBundle:User')->findBy([], [], 30);
是否可以获取所有相关的项目在一个查询用户自动使用原则?
我使用SF 2.7.6和学说库与版本:
doctrine/annotations v1.2.7 Docblock Annotations Parser
doctrine/cache v1.5.1 Caching library offering an ob...
doctrine/collections v1.3.0 Collections Abstraction library
doctrine/common v2.5.1 Common Library for Doctrine pr...
doctrine/dbal v2.5.2 Database Abstraction Layer
doctrine/doctrine-bundle 1.6.0 Symfony DoctrineBundle
doctrine/doctrine-cache-bundle 1.2.1 Symfony Bundle for Doctrine Cache
doctrine/doctrine-migrations-bundle 1.1.1 Symfony DoctrineMigrationsBundle
doctrine/inflector v1.0.1 Common String Manipulations wi...
doctrine/instantiator 1.0.5 A small, lightweight utility t...
doctrine/lexer v1.0.1 Base library for a lexer that ...
doctrine/migrations v1.1.0 Database Schema migrations usi...
doctrine/orm v2.5.1 Object-Relational-Mapper for PHP
确保您清除缓存,并且已经显示映射文件是实际使用的一个。让你不混合yaml和注释。你发布的内容应该有效。 – Cerad
我刚刚检查了所有这些,但仍然没有运气。 – miller
只为咧嘴笑,尝试从您的查询中删除30。当涉及到连接时,限制和偏移总是有点困难。 – Cerad