2012-12-23 58 views
1

後來我問了一些有關教義查詢緩存的問題,因爲它沒有按照我的要求工作。主義分離,緩存和合並第2部分

問爲什麼我的關係都沒有被緩存:

Doctrine result cache not caching a query with a join

問題有關如何使用分離和合並獲得的關係緩存:

Doctrine detaching, caching, and merging

我不知道爲什麼我沒有儘早這樣做,但是我只是啓用了Doctrine的EchoSQLLogger,我發現當我合併實體時,每個頁面都會執行三個查詢。

我的實體是user,companyprivilege,其中user是另外兩個的父項。當我第一次得到usercompanyprivilege加入時,我在user上運行detach,然後將它放入ApcCache。當我從緩存中獲取數據時,我做了一個merge,它讓我回到了user實體,所有的教義魔術都保持不變。

問題是,當我呼叫merge時,它會查詢user,company,然後是privilege。這是merge應該如何工作?

是否有任何方法來緩存我的user實體與兩個關係完整無需調用數據庫?

回答

0

對於任何(或自己)在未來閱讀本:

我結束了做單獨的查詢和緩存各地PHP Incomplete Class問題工作節省爲每個實體。例如我的用戶/公司/特權在問題上的困境。我緩存該用戶,緩存該公司並使用其結果覆蓋$user['company'],並且相同的權限。

這似乎工作,但認真。學說的緩存需要幫助。