尝试回答一个简单的问题而没有任何运气在线搜索。
我正在学习Groovy并在网上看到了这段代码:
class Person {
String name
Person parent
static belongsTo = [ supervisor: Person ]
static mappedBy = [ supervisor: "none", parent: "none" ]
static constraints = { supervisor nullable: true }
}
我特别关注Person
班级的最后一行。
{ supervisor nullable: true }
是什么意思?这些多个键是否都链接到值true
或其他东西?
谢谢!
答案 0 :(得分:4)
这是以下内容的缩写:
static constraints = {
supervisor([nullable: true])
}
这意味着:定义一个名为constraints
的类变量,它包含一个闭包(闭包是groovy中的第一类数据)。闭包(稍后调用)将执行./ / p>中的代码
代码中有一个DSL,用于配置后续数据库抽象的约束。所以supervisor
是一个方法调用(该方法不存在,但DSL代表负责处理)。 The ()
maybe left out, if "unambiguous"。接下来,如果该方法将Map
作为参数,则[]
也可能被遗漏。
请注意,belongsTo
和mappedBy
是实际地图。