GORM动态设置Mapping

时间:2016-12-19 12:24:25

标签: grails logging gorm

我正在尝试更新DomainClass的数据库映射,以将其保存在不同的表中。 我之所以这样做是因为我正在研究一个AuditListener,它动态地将当前实体保存在日志表中。

我从实体获得了属性和数据库映射。现在我更新了RevisionEntity

的MetaClass
Mapping entityMapping = grailsDomainBinder.getMapping(domainClassObject.class) // get Mapping of the Entity Class
entityMapping?.columns?.each{column ->
    String propertyName = column.key
    RevisionEntity.metaClass."${propertyName}" = properties.get(propertyName) ?: null  //add Property to RevisionEntity
}

我根据实体的映射构建了一个新的Mapping:

Mapping newRevisionEntityMapping = new Mapping() // create new Mapping for Revision Entity
newRevisionEntityMapping.versioned = false
newRevisionEntityMapping.tableName = tableName
if(entityMapping?.columns)
    newRevisionEntityMapping.columns?.putAll(entityMapping?.columns) // add column Mapping from origiganal Entity

现在我想将映射设置为RevisionEntity类。

您是否有任何建议如何设置RevisionEntity的数据库映射?

0 个答案:

没有答案