预期我有一个实体Shop
和相关实体ShopProduct
,以下关系式:学说额外的延迟加载不工作与计
/**
* @ORM\OneToMany(targetEntity="ShopProduct", mappedBy="shopid", fetch="EXTRA_LAZY")
*/
private $products;
在树枝模板,我想访问计数的products
,所以我访问
{{ entity.getProducts().count }}
但使用Symfony2的探查时看号码和查询的内容,我看到的不是,充分选择发出后,我期望(基于the documentation)。
为每个Shop
发出完整选择会导致250Mb +的内存使用量和30+秒的页面加载时间,这是不希望的。
添加fetch="EXTRA_LAZY"
后,我清除了原则缓存。
我是否忽略了某些东西,使用了错误的方法或误解了文档?
[编辑]
doctrine/annotations v1.1
doctrine/cache v1.0
doctrine/collections v1.1
doctrine/common 2.4.0-RC1
doctrine/data-fixtures dev-master eef10f6
doctrine/dbal 2.3.3
doctrine/doctrine-bundle v1.2.0-beta1
doctrine/doctrine-fixtures-bundle dev-master 275540d
doctrine/doctrine-migrations-bundle dev-master 99c0192
doctrine/inflector v1.0
doctrine/lexer v1.0
doctrine/migrations dev-master e1f6efc
doctrine/orm 2.3.3
一些额外的树枝提示:使用'entity.products.count'代替。这将自动搜索获得“产品”属性的最佳方式 – 2013-03-26 19:48:43
这就是我最初尝试的,不幸的是,它会导致相同的#和查询类型以及加载时间。我无法想象这是最好的方法;) – 2013-03-26 19:59:03
@TheRookie你使用的是什么版本的ORM?你可以尝试一下Twig上下文吗? – Ocramius 2013-03-29 12:20:25