具有“第一”和“最后”属性的Grails域

时间:2013-11-13 17:49:22

标签: grails

我最近继承了Grails代码库,其中包含一个名为Name的域类,其中包含({1}}和first属性,用于表示名称的第一部分和最后部分,分别。在编写使用此域的单元测试时,我遇到了一些问题,这些问题源于这些属性的名称与Grails中的firstlast方法相同。现在,我可以通过重命名属性来解决问题,但我想知道Grails中是否有办法使用属性名称lastfirst

即Grails尝试将last约束应用于属性时,我收到的错误为No signature of method: com.example.Name.first() is applicable for argument types: () values: [] Possible solutions: first(), first(java.lang.String), first(java.util.Map), list(), list(java.util.Map), print(java.lang.Object)

以下是nullable: true的来源:

Name

1 个答案:

答案 0 :(得分:7)

你说这个错误发生在约束块中。在这种情况下,您可以使用明确的delegate.,即

static constraints = {
  delegate.first(nullable:true)
  // and similarly for last
}

强制将first视为对约束DSL的调用,而不是静态GORM方法。