这是在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
偶然发现了类似问题。尝试condition.save(flush: true)
,甚至更好地尝试在交易中运行持久性逻辑。这似乎有所不同,无论如何被认为是最佳实践。