这是grails 2.5.6代码。我有一个使用继承的域类。其中一个子类包含存储在变量values
中的字符串列表。调用.save()
时,域类本身可以正确保存正确的继承行为,但不会保存值。这是我的域类:
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 :(得分:0)
偶然发现了类似的问题。尝试condition.save(flush: true)
或者甚至更好地尝试在事务中运行持久性逻辑。这似乎有所不同,无论如何都被认为是最佳实践。