域类变量

时间:2015-03-12 13:53:19

标签: grails groovy metaprogramming

Grails中的域类如何包含static constraints ={ }等变量?

我看不到任何直接继承。

我猜这是元编程,但你可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

在Grails域类中,不要扩展框架提供的基类,这与Hibernate中持久化实体的工作方式一致。

另请注意,静态方法无论如何都不会继承,并且没有字段可以继承。映射和约束变量是在域类上声明的静态字段。继承并不适用于此。

Grails根据文件在项目结构中的位置知道哪些类是域类,服务,控制器等。 Grails知道在名为constraints和mapping的域对象中查找静态变量。

这很好地利用了约定,而不是元编程。元编程将涉及为这些闭包中的条目实现DSL,以及将GORM方法添加到域类中。