1
我无法将保存级联到我的对象层次结构中。以下是我的对象层次结构的代码。Grails/GORM不通过整个对象层级保存级联保存
class Entity {
static hasMany = [attributes: Attribute]
}
class Attribute extends ValuePossessor {
static belongsTo = Entity
}
abstract class ValuePossessor {
def valueService
Value value
void setValue(val) {
this.value = valueService.Create(val)
this.value.possessor = this
}
}
abstract class Value {
static belongsTo = [possessor: ValuePossessor]
}
class StringValue extends Value {
String value
}
的valueService是简单地创建正确的值类型(字符串,布尔,INT等),一个大的switch语句的服务。
Entity e = new Entity()
Attribute attr = new Attribute()
attr.setValue(1)
e.addToAttributes(attr)
e.save()
上述代码正确地创建了所有对象,但未能保存值对象。实体和属性被保存,但值不是。我是否缺少一些需要级联到值对象的标识符?
由于Value属于ValueProcessor,并且您没有设置可能是原因的processor.value。 保存后试试println e.errors,看看是否有一些验证错误。 – uchamp
我在setValue方法中设置了processor.value,并将它配置为在验证错误时失败。它不会失败,只是不保存价值。 – bdbull
很难说,当你摆脱了Grails的惯例时,可能很难调试 –