我有一個腳本,使用原則從數據庫中提取數據。有時它需要爲同一實體獲取數據,但是它第二次使用標識映射,因此可能與數據庫不同步(另一個進程可以修改數據庫中的實體)。我們嘗試的一種解決方案是在運行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. 強制JFrame刷新
- 2. 強制CascadingDropDown無刷新刷新
- 3. 強制非阻塞刷新刷新
- 4. 強制WPF控件刷新?
- 5. 強制刷新燼視圖
- 6. asp.net - 強制刷新頁面
- 7. WPF的Datagrid:強制刷新
- 8. 強制刷新Facebook會話
- 9. PHP強制刷新圖像
- 10. Keycloak強制刷新令牌
- 11. 強制刷新視圖?
- 12. Eclipse - 強制刷新ID
- 13. 強制更新面板刷新
- 14. 何時刷新UIView?是否有可能強制中功能刷新?
- 15. 按下後退按鈕時強制刷新/刷新
- 16. 需要強制刷新WPF標籤
- 17. 強制Windows刷新磁盤FAT
- 18. 如何強制文件刷新
- 19. 在ajax請求上強制刷新?
- 20. 如何強制刷新在警予
- 21. 如何強制Admob在Android上刷新
- 22. AngularJS的強制刷新頁面
- 23. 強制綁定UI組件刷新
- 24. 強制文件刷新之前建立
- 25. 如何強制listview刷新其視圖?
- 26. Vala強制刷新進度條
- 27. 強制Richtextbox滾動條刷新
- 28. 強制刷新的HTML鏈接?
- 29. 刷新或強制重繪片段
- 30. 如何強制spring-boot刷新資源?
幾種可能的方法,但是如果數據庫在查詢後發生了變化,您希望發生什麼?假設你需要對這些數據做些什麼,但是在查詢和你使用它的任何事情之間它可能會失效。 – Cerad
如果數據在實際處理過程中發生了變化,那麼它就可以。當我找到我希望得到存儲在數據庫中的實際狀態。 – roinir
這是一種長時間運行的過程嗎?不清楚爲什麼要在查詢之間進行更改,但查詢後數據更改沒問題。在每個查詢之前,可能需要一個簡單的$ entityManager-> clear()。 – Cerad