Grails 2.5.x GORM持久性人工特性

时间:2015-12-12 01:44:14

标签: hibernate grails gorm hibernate-4.x grails-2.5

是否可以在Grails 2.5.x GORM中保留人工属性?

也可以使用Hibernate 4注释/设置。

例如,我希望能够将DomainObjectC持久化到具有3列(id,do_b_id,do_a_id)的domain_object_c表,以对do_a_id进行非规范化。

如何让GORM创建&填充domain_object_c.do_a_id列?:

class DomainObjectA {}

class DomainObjectB {
    DomainObjectA doA
}

class DomainObjectC {
    DomainObjectB doB
    Long getDoAId() {doB?.doAId}
}

1 个答案:

答案 0 :(得分:0)

以下是您可以做的事情:

class DomainObjectB {
    DomainObjectA doA

    //To keep in sync the data of DoaminObjectC table
    def beforeUpdate(){
        if (this.isDirty('doA')){
            DomainObjectC.findAllByDoB(this)*.setDob(this).save()
        }
    }
}

class DomainObjectC {
    DomainObjectB doB
    Long doAId

    public void setDoB(DomainObjectB doB){
        this.doB = doB
        doAId = doB?.doAId
    }
}