在我看來,如果我有一種情況需要在多個地方使用動態方法(例如Domain.findByName(「name」)),它會更好嗎定義一個變量並引用它,而不是在多個地方使用動態方法?我知道這似乎是一個明顯的答案,但我只是想確保Grails不會緩存它或者什麼,而且確實有兩個數據庫調用正在進行。多個動態方法調用或在Grails中聲明變量
0
A
回答
1
訪問它在默認情況下,Grails將只緩存「get」請求時(即圖書.get(4)),如果你沒有設置任何額外的緩存,你會爲每個請求點擊數據庫(如你所見)。
有關更多詳細信息,請參見the 'caching queries' section of the grails documentation。
如果你只想調用一次(在視圖中有意義,因爲你希望它是一致的),我會在動作中執行查詢並將其傳入模型中,或者否則你也可以在視圖中使用g:set來設置它(儘管這聽起來像是更適合於控制器或服務)。
0
將域對象作爲模型的一部分發送到視圖會更好,而不是從視圖中調用Domain.findByName("name")
。
因此,在你的控制器方法你想要
def myAction = {
def myObject = Domain.findByName("name")
// do other stuff
[myObject: myObject]
}
那麼在你看來,你可以通過
${myObject.property}
相關問題
- 1. 在VB.net中動態聲明變量
- 2. 在javascript中動態聲明變量名
- 3. 聲明變量動態
- 4. 動態變量聲明
- 5. Unity3D動態變量聲明
- 6. 如何在Main方法中聲明一個靜態變量?
- 7. 調用第二類靜態方法來聲明變量的類
- 8. 在PHP中聲明多個變量的正確方法
- 9. 在java中聲明變量的方法
- 10. 在方法參數中聲明變量
- 11. c#方法聲明變量
- 12. C++方法變量聲明
- 13. Ruby方法變量聲明
- 14. 有多少個實例在方法中聲明的靜態變量?
- 15. 在Javascript中動態聲明方法
- 16. 在SQL中聲明多個值變量
- 17. 從表中聲明動態變量
- 18. 聲明變量動態在PHP
- 19. 我在PHP中聲明瞭哪些靜態方法/變量?
- 20. 調用變量聲明
- 21. JavaScript動態變量方法調用
- 22. 用這個或var聲明變量?
- 23. 我想使用動態SQL中聲明的動態變量
- 24. 使用BEM方法聲明Sass變量
- 25. 聲明類方法中的新變量
- 26. 訪問變量到方法聲明中
- 27. Javascript中的變量聲明方法
- 28. 在mysql中爲單個變量聲明多個變量
- 29. 聲明與一個聲明多個變量中MiniZinc
- 30. 1聲明多個變量的聲明,如聲明語句
這是正確的解決方案,根據查詢和應用程序使用模型的性質,如果您有Hibernate二級緩存,則findByName(「name」,[cache:true])也可能有利於執行該操作的其他客戶端啓用。 – 2010-04-08 13:50:45