同樣的問題可能會被問及控制器等。編譯器如何找到神奇地具有grails工件的方法/字段?我正嘗試在純Java/Spring中設計類似的東西,並想知道我可以如何完成這樣的事情。Grails域類從哪裏獲取它們的查詢方法?
0
A
回答
2
編譯器如何找到grails工件的方法/字段 神奇地有?
編譯器沒有真正找到方法,至少不是所有的查詢機制。例如,動態查找器在編譯時不解析。它們在運行時通過動態分派進行處理。 where
查詢在編譯時被綁定,並且「how」有一點涉及,但總之,我們有編譯時AST轉換,查找對域類的靜態where
方法的調用,當遇到其中一個方法時,AST編譯時轉換生成在運行時執行查詢所需的代碼。像get(id)
和list()
這樣的方法是在編譯時Grails添加到所有域類的特徵中定義的。
我想在純Java/Spring中設計類似的東西,並想 想知道我可以如何完成這樣的事情。
上面描述的方法都沒有可以用Java實現的直接對應方法。所有這些技術都依賴於Groovy提供的功能。
HTH
編輯
問題的標題是目前「在哪裏Grails領域類從他們的查詢方法?」所以我專門在域類的查詢方法的上下文中回答。對於更一般的「編譯器如何查找grails artifacts神奇地具有的方法/字段?」,上面的註釋仍然適用。
相關問題
- 1. 查詢時從哪裏獲取ROWID?
- 2. Laravel從哪裏獲取references()方法?
- 3. Grails在哪裏查詢標準資格
- 4. Grails。域類及其方法?
- 5. 的Grails哪裏查詢:擴大的DetachedCriteria的方法不起作用
- 6. 在grails域類中編寫類方法有哪些優缺點?
- 7. 多列/從哪裏查詢SQL查詢
- 8. qmake - 在Linux中查詢內部設置 - 它們在哪裏?
- 9. Grails從哪裏查詢靜態上下文?
- 10. WCFExtras XmlComments ...它們在哪裏?
- 11. ASP.Net MVC中的表單字段從哪裏獲取它們的值?
- 12. Grails繞過域類的更新方法
- 13. Magento從哪裏獲取HTML?
- 14. Websphere從哪裏獲取WSDL?
- 15. 從哪裏獲取TwitterCore?
- 16. 從多個域中查詢Grails
- 17. SCCM檢測方法 - 它們在哪裏存儲?
- 18. IKVM從哪裏獲得它的CLASSPATH?
- 19. 從Grails域類中的地圖屬性查詢值
- 20. JAVA:知道從哪裏調用靜態方法的方法/類
- 21. .available方法從哪裏來?
- 22. FirstResponder方法從哪裏來?
- 23. Grails域名字符串查詢查詢
- 24. 在哪裏存儲值,以從角度模板中獲取它們
- 25. 從哪裏查詢的SQL更新
- 26. 笨在哪裏,從以前的查詢
- 27. Grails:哪些類應該是域類?
- 28. 哪裏(哪一層)放實體查詢方法,「堅持」等方法?
- 29. 從Shiro Subject獲取到grails域對象
- 30. 從句子/查詢中提取位置的方法有哪些?
這可以在Groovy中使用Traits(在更高版本的Grails中)或元編程(Grails的舊版本)來完成。 –
@JoshuaMoore你能舉一個例子回答嗎?這將是甜蜜的。 – zero01alpha
「這可以通過在Groovy中使用Traits(在Grails的更高版本中)或元編程(Grails的舊版本)來完成」 - @JoshuaMoore即使在Grails的新版本中,也不是所有的查詢方法都與特性搭配。例如,「where」查詢使用在查詢被調用的站點上應用的AST轉換來裝配。 –