我有一個腳本,使用原則從數據庫中提取數據。有時它需要爲同一實體獲取數據,但是它第二次使用標識映射,因此可能與數據庫不同步(另一個進程可以修改數據庫中的實體)。我們嘗試的一種解決方案是在運行DQL查詢之前設置查詢提示Query::HINT_REFRESH
。然而,我們也想用它調用簡單的findBy(..)
,但這似乎不起作用?我們還希望能夠在每個進程中對其進行全局設置,以便在該上下文中運行的所有Doctrine SELECT查詢將實際從數據庫中提取實體。我們試圖設置$em->getConfiguration()->setDefaultQueryHint(Query::HINT_REFRESH, true);
,但又似乎不起作用?強制原則總是刷新
Q
強制原則總是刷新
0
A
回答
0
Doctrine explicitly warns you它不意味着沒有緩存使用。
但是,如果要忽略這一點,那麼Cerad的評論(在in this answer中也提到)聽起來沒錯。如果你想在每個查詢中都這麼做,雖然你可能會考慮掛鉤doctrine event,但不幸的是,preLoad
沒有任何事件,只有postLoad
,但如果你真的不關心性能,你可以創建一個postLoad監聽器,它首先獲取類和實體的ID,在實體管理器上調用clear
,最後重新加載它。聽起來對我來說是非常錯誤的,但我洗了手:-)
相關問題
- 1. 強制刷新SherlockActionbar
- 2. 強制JFrame刷新
- 3. 強制TextBox刷新
- 4. 強制MapView刷新?
- 5. 強制CascadingDropDown無刷新刷新
- 6. 強制非阻塞刷新刷新
- 7. Grails的failOnError是否強制刷新?
- 8. 總是強制引用的DLL更新?
- 9. WPF的Datagrid:強制刷新
- 10. 強制刷新燼視圖
- 11. 強制刷新表視圖
- 12. Eclipse - 強制刷新ID
- 13. 強制刷新到Observable.Buffer c#
- 14. Keycloak強制刷新令牌
- 15. asp.net - 強制刷新頁面
- 16. javafx2.0 - 強制刷新場景
- 17. 強制刷新視圖?
- 18. 如何強制刷新GridView?
- 19. 強制刷新Facebook會話
- 20. 如何強制刷新ObjectDataSource?
- 21. 強制WPF控件刷新?
- 22. PHP強制刷新圖像
- 23. 更新後強制實體刷新
- 24. 強制更新面板刷新
- 25. 強制刷新/更新數據讀取
- 26. IE 8總是刷新
- 27. MKAnnotation總是紅專刷新
- 28. 刪除之前插入原則刷新
- 29. 何時刷新UIView?是否有可能強制中功能刷新?
- 30. 強制按F5刷新時,瀏覽器或刷新按鈕
幾種可能的方法,但是如果數據庫在查詢後發生了變化,您希望發生什麼?假設你需要對這些數據做些什麼,但是在查詢和你使用它的任何事情之間它可能會失效。 – Cerad
如果數據在實際處理過程中發生了變化,那麼它就可以。當我找到我希望得到存儲在數據庫中的實際狀態。 – roinir
這是一種長時間運行的過程嗎?不清楚爲什麼要在查詢之間進行更改,但查詢後數據更改沒問題。在每個查詢之前,可能需要一個簡單的$ entityManager-> clear()。 – Cerad