2012-03-03 6 views
1

的Grails 2.0.1Grails的 - 相同类型和一两个属性不会保留到数据库中,没有错误

这里被剥离下来域的简化版本:

class Attribute { 
    String name 

    static hasMany = [attributeParameters: AttributeParameter] 
} 

class AttributeParameter { 
    String name 

    Attribute attributeReference 

    static belongsTo = [attribute:Attribute] 
} 

当我看数据库中的模式,AttributeParameter中有2个独立的FK; 1为attribute_reference_id,另一个为attribute_id。当我保存填充了所有数据的域时,我在Attribute和AttributeParameter上都收到0错误,但是,attribute_reference_id列永远不会被填充。调试,我可以看到attributeReference对象,它有一个ID,即使在保存调用之后。 Grails不会抛出任何异常(至少没有显示在控制台上)。

陌生人仍然是,如果我去数据库并添加一个属性的ID到attribute_reference_id列,GORM加载它完美。再次点击保存,即使调试显示对象存在,它也会返回null。

真的不知道为什么数据不会持续存在。

回答

1

我不得不以下内容添加到属性:

static mappedBy = [attributeParameters: 'attribute'] 
+0

此领域建模是没有意义的。你是否试图在Attribute和AttributeParameter之间完成1:M?如果是这样,请删除attributeReference字段,因为belongsTo块会自动将定义的字段(在此情况下为属性)附加到您的域类。 – 2012-03-05 09:27:17

+0

他们是2个独立的属性,正如我在我的问题中所述。一个定义了belongsTo/hasMany关系,attributeReference是我们需要跟踪的另一个属性。 – Gregg 2012-03-05 16:17:33

相关问题