延迟加载水合缓存的结果

时间:2014-12-17 19:05:52

标签: doctrine-orm

$queryBuilder = $this->getEntityManager()->createQueryBuilder()
    ->from('ShopHqCartBundle:PromotionalDiscount', 'pd')
    ->leftJoin('pd.requiredSkus', 'pdrs')
    ->andWhere('pd.id = :id')
    ->select('pd', 'pdrs');
$query = $queryBuilder->getQuery();

$cache = $this->getEntityManager()->getConfiguration()->getResultCacheImpl();
$hydrationCacheProfile = new QueryCacheProfile(60 * 60 * 12, $cacheKeyHydrated, $cache);

$result = $query
  ->useQueryCache(true)
  ->useResultCache(true, 60 * 60 * 12, $cacheKey)
  ->setHydrationCacheProfile($hydrationCacheProfile)
  ->getResult();

第一次运行时,我回到了一个托管实体,我可以懒得加载其他关系。从水合缓存中获取结果时,它不是托管实体,因此延迟加载不起作用。我能做些什么来保持水合缓存并使延迟加载与水合缓存的结果一起工作?

0 个答案:

没有答案