Grails域类从哪里获取查询方法?

时间:2016-09-09 12:25:08

标签: java grails

可以询问有关控制器等的同样问题。编译器如何找到怪异神器所具有的方法/字段?我试图在纯Java / Spring中设计类似的东西,并且想知道我如何能够完成这样的事情。

1 个答案:

答案 0 :(得分:2)

  

编译器如何找到粘贴工件的方法/字段   神奇地拥有?

编译器并没有真正找到这些方法,至少不适用于所有查询机制。例如,动态查找程序在编译时不会被解析。它们在运行时使用动态调度进行处理。 where查询在编译时被绑定,并且"如何"有点参与,但总之,我们有编译时AST转换,寻找对域类的静态where方法的调用,当遇到其中一个时,编译时的AST转换生成必要的代码在运行时执行查询。 get(id)list()等方法在Graits中定义,Grails在编译时将其添加到所有域类。

  

我正在尝试在纯Java / Spring中设计类似的东西   想知道我怎么能做到这样的事情。

我上面描述的所有方法都没有可以用Java实现的直接对应方式。所有这些技术都依赖于Groovy提供的功能。

HTH

修改

问题的标题目前是#34; Grails域类从哪里获取查询方法?"所以我在域类的查询方法的上下文中特别回答。对于更通用的"编译器如何找到使神器具有神奇功能的方法/字段?",上述注释仍然普遍适用。