2014-10-18 46 views
0

我正在尝试将值设置(或绑定)到暂时的List属性。但我收集失败了。 另一方面,瞬态String属性在setter上运行良好。Grails域类暂时收集属性设置问题

Grails版本2.4.3

有什么建议吗?

@Resource(uri = "/api/samples", formats = ["json"]) 
class Sample { 

    static transients = ["fields","sample"] 

    String regions 
    String name 
    String sample 


    List<String> fields 

    List<String> getFields() { 
     this.regions != null ? Arrays.asList(regions.split("\\s*,\\s*")) : new ArrayList<String>(); 
    } 

    void setFields(List<String> fields) { 
     if (fields != null && !fields.isEmpty()) { 
      this.regions = fields.join(",") 
     } 
    } 

    void setSample(String sample){ 
     this.name = sample 
    } 

    static mapping = { 
    } 
} 

回答

1

无类型字段默认短暂的,所以这种替代方法,就可以(和很多更简洁):

@Resource(uri = "/api/samples", formats = ["json"]) 
class Sample { 

    static transients = ["sample"] 

    String regions 
    String name 
    String sample 


    def getFields() { 
     this.regions != null ? Arrays.asList(regions.split("\\s*,\\s*")) : [] 
    } 

    void setFields(def fieldList) { 
     if (fieldList) { 
      this.regions = fieldList.join(",") 
     } 
    } 

    void setSample(String sample){ 
     this.name = sample 
    } 

    static mapping = { 
    } 
} 
+0

感谢您的approche我解决了和你相似。 – daimon 2014-11-12 09:42:11