在Grails 2.4.4下,我们使用了用作域对象包装器的类.
它们看起来像这样:
class Foo { @Delegate OurDomainClass ourDomainClass ... }
这很有效,但是当尝试在Grails 3.0.11下编译时,我们得到了这个:
Foo.groovy:14:在非抽象类中不能有抽象方法.必须将类’Foo’声明为abstract或者必须实现方法’org.springframework.validation.Errors org_grails_datastore_gorm_GormValidateable__errors $get()’.
@第14行,第1列.
class Foo {
^
删除@Delegate注释将使编译通过,但是对基础类的方法的调用显然不起作用.
有没有办法解决这个问题或实现相同的行为并让它通过Grails 3下的编译?
解决方法
好的旧静态hasMany = []或静态hasOne = []是否不能完成这项工作?当然包装器也是域类.