从基类继承Grails Domain Class属性

时间:2011-08-26 15:14:40

标签: java grails groovy grails-domain-class

我试图创建一个动态继承另一个类属性的Domain Class Constructor。但我无法让它正常工作。

以下是一个例子:

class Example1 {

  String name;
  String location;
}

class Example2 extends Example1 {

  String status;

  public Example2 (Example1 orig){
    // Code here to set this.name and this.location  to name and location from orig
    // dynamically, so adding a field in Example1 does not require me to add that 
    // field here.
  }
}

3 个答案:

答案 0 :(得分:2)

你工作太辛苦了,只需复制属性:

class Example2 extends Example1 {

   String status

   Example2() {}

   Example2(Example1 orig) {
      this.properties = orig.properties
   }
}

答案 1 :(得分:1)

经过充分的故障排除和在线搜索,我找到了一个解决方案,以防万一有人在寻找类似的东西:

public Example2(Example1 orig){
   def d = new DefaultGrailsDomainClass(Example1.class)
   d.persistentProperties.each { val ->
       this[val.name] = orig[val.name]         
   }       
}

包括这个:

import org.codehaus.groovy.grails.commons.DefaultGrailsDomainClass

答案 2 :(得分:0)

我不完全清楚你想要完成的是什么,但有没有理由你不能在“Example2”类中有一个“Example1”字段?