我有一個網站是我玩的視頻遊戲,並且正致力於通過實施一些額外的緩存來提高網站的性能。我已經能夠在自定義存儲庫函數上實現查詢結果緩存,但是無法找到解釋如何將查詢結果緩存包含在內置函數(findOneById等)中的任何地方。我對這樣做感興趣,因爲我的許多數據庫查詢都是從這些「本地」存儲庫函數中執行的。如何爲內置的doctrine2存儲庫函數設置查詢緩存結果?
因此,作爲一個例子,我有以下屬性的字符實體對象:ID,名稱,種族,階級等
種族和階級在這個對象是種族和階級反對其他實體引用。 當我加載一個字符進行顯示時,我通過名稱(findOneByName)得到了字符,然後在我的模板中顯示了角色的種族/類別$characterObject->getRace()->getName()
。模板中的這些方法調用將導致查詢在我的Race/Class實體表上按id(findOneById,我假設)獲取實體。
我試圖在存儲庫中創建自己的findOneById函數,但在這種情況下不會調用它。
如何設置doctrine/symfony,使這些查詢結果可以緩存?
我運行的Symfony 2.1.3和學說2.3.x版本
Eager fetch並不能幫助我緩存。在激活時,它不會更改執行的查詢數或緩存結果。我的問題的一部分是每年有6次左右的比賽,我想緩存比賽信息,這樣它就可以在任何角色上重複使用,無論上下文如何(角色簡介,公會成員名單等) )。我試圖避免寫每個頁面的數據需要特定的DQL ...我相信這是最有效的解決方案,但我試圖簡化。 – Chris