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