2017-06-05 84 views
0

這是在grails 2.5.6代碼中。我有一個使用繼承的域類。其中一個子類包含存儲在變量values中的字符串列表。當調用.save()時,域類本身會正確保存正確的繼承行爲,但值不會被保存。以下是我的域類:Grails域類字符串列表不支持

abstract class Condition implements ICondition, IMarshaler { 
    String field; 
    static mapping = { 
     tablePerHierarchy false; 
    } 
    ... 
} 

class ListCondition extends Condition { 
    static hasMany = [values: String]; 
    List<String> values; 
    ... 
} 

試圖保存新的列表條件並從數據庫中再次獲取它表明沒有值。

ListCondition condition = new ListCondition(field: 'someField', values: ['test', 'otherTest']) 
condition.save() 
println ListCondition.getAll()[0].values.size() // Prints 0 
+0

嘗試condition.save(failOnError:true)如果出現錯誤,它會給你一些堆棧跟蹤 – chim

回答

0

發生類似問題。嘗試condition.save(flush: true)或者甚至更好的嘗試在事務內部運行你的持久化邏輯。這似乎有所作爲,並被認爲是最佳實踐。