如何将字符串类型字段添加到类(即该类的所有实例),如 grails 将 id 和版本字段添加到所有域类?如果可能,如何将字段类型指定为 String / Long 等
编辑:
添加的字段不会在数据库中更新。如何让他们坚持下去?
对于 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"
对于您的用例,您可以使用正常的继承:
abstract class Base {
// common fields
// constraints for those fields
// etc.
}
class MyDomain extends Base {
}