同样的问题可能会被问及控制器等。编译器如何找到神奇地具有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转换来装配。 –