2014-10-18 50 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