hibernate - Grails 2.5.x GORM持久的人工特性

标签 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}
}

最佳答案

您可以执行以下操作:

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
    }
}

关于hibernate - Grails 2.5.x GORM持久的人工特性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34235282/

相关文章:

grails - Grails save()方法错误

hibernate - 如何从 grails 事务中获取 hql 查询?

tomcat - AtmosphereFramework异常java.lang.IllegalStateException : Not supported

grails - 从1.3.x升级到2.0.4后,出现错误 “unable to resolve class org.jfree.util.Log grails”

sorting - 通过3个类对多对多进行排序:按关系数排序

mongodb - Grails 3使用_id和id保存mongoDB文档

java - 如何使用 hibernate 查询从电子邮件列表中过滤邮件域

java - OSIV 模式 - 优点和缺点?关于 OSIV 和观点的一般问题

java - 为什么Hibernate默认为@OneToMany创建Join Table?

grails - AWS Elastic Beanstalk故障:RDS连接错误:用户 'sa'的访问被拒绝