0

是否可以在 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}
}
4

1 回答 1

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
    }
}
于 2015-12-13T16:12:12.753 回答