1

如何将字符串类型字段添加到类(即该类的所有实例),如 grails 将 id 和版本字段添加到所有域类?如果可能,如何将字段类型指定为 String / Long 等

编辑:

添加的字段不会在数据库中更新。如何让他们坚持下去?

4

2 回答 2

2

对于 POGO,您可以使用 ExpandoMetaClass 添加/覆盖属性/字段/构造函数。

class Foo{
   String bar
}

//Add a field to Foo at runtime
//Type is set to String in this case
Foo.metaClass.baz = "Hello World"

//Add a method to Foo at runtime
Foo.metaClass.doSomething = {String str -> str.reverse()}

assert new Foo().baz == "Hello World"
assert new Foo().doSomething("Hello") == "olleH"
于 2013-08-28T03:22:02.930 回答
1

对于您的用例,您可以使用正常的继承:

abstract class Base {
  // common fields
  // constraints for those fields
  // etc.
}

class MyDomain extends Base {
}
于 2013-08-28T23:08:49.413 回答