TYPO3 Extbase存储库查询缓存

时间:2016-10-20 08:03:59

标签: caching typo3 extbase

我对缓存有一些疑问。首先是一些先决条件:

// query 1
$data1 = $this->myRepository->findByPid($myPid);
// query 2
$data2 = $this->myRepository->findOneByUid($myUid);

我的问题:

  1. 如果我在脚本中多次执行查询2,第一次调用会从数据库中检索数据,所有其他数据都从缓存中检索,而不查询数据库?
  2. 如果我稍后再次执行查询2(例如在第二个脚本中),则会再次从数据库中检索数据(除了使用缓存框架存储此查询的结果外,没有持久查询缓存)?
  3. 如果我执行查询1然后查询2并且查询1包含uid" $ myUid"的数据,则从缓存中检索查询2的数据?

1 个答案:

答案 0 :(得分:3)

对于较旧和较新的Typo3版本,行为是不同的。从Typo3 7.x开始,如果您使用默认存储库查询,则始终使用缓存。从数据库中检索数据集后,属性映射器将其映射到域对象,如果该对象已存在于缓存中,则返回该对象。

在Typo3 6.x中,如果您使用->findByUid选择它并且例如作为控制器参数,则会为同一个uid获取两个不同的对象