後來我問了一些有關教義查詢緩存的問題,因爲它沒有按照我的要求工作。主義分離,緩存和合並第2部分
問爲什麼我的關係都沒有被緩存:
Doctrine result cache not caching a query with a join
問題有關如何使用分離和合並獲得的關係緩存:
Doctrine detaching, caching, and merging
我不知道爲什麼我沒有儘早這樣做,但是我只是啓用了Doctrine的EchoSQLLogger
,我發現當我合併實體時,每個頁面都會執行三個查詢。
我的實體是user
,company
和privilege
,其中user
是另外兩個的父項。當我第一次得到user
與company
和privilege
加入時,我在user
上運行detach
,然後將它放入ApcCache
。當我從緩存中獲取數據時,我做了一個merge
,它讓我回到了user
實體,所有的教義魔術都保持不變。
問題是,當我呼叫merge
時,它會查詢user
,company
,然後是privilege
。這是merge
應該如何工作?
是否有任何方法來緩存我的user
實體與兩個關係完整無需調用數據庫?