Grails 在GORM中为列名加前缀

Grails 在GORM中为列名加前缀,grails,gorm,Grails,Gorm,对于每个项目,当我在Grails域类中使用status或user等属性时,我都会自动遇到保留SQL字的问题 所以我总是要加一个 static mapping = { status column:'prefix_status' } 给我的班级 我现在想知道是否有一种简单的方法可以用给定的字符串为所有列添加前缀 如果没有现成的东西,我想可以创建一个插件,在所有域类中自动注入这样的映射-有人能给我指出一个代码示例,在类发生变化时修改它吗?手册中已经回答了这一点: 添加到DataSource

对于每个项目,当我在Grails域类中使用
status
user
等属性时,我都会自动遇到保留SQL字的问题

所以我总是要加一个

static mapping = {
    status column:'prefix_status'
}
给我的班级

我现在想知道是否有一种简单的方法可以用给定的字符串为所有列添加前缀


如果没有现成的东西,我想可以创建一个插件,在所有域类中自动注入这样的映射-有人能给我指出一个代码示例,在类发生变化时修改它吗?

手册中已经回答了这一点:

添加到
DataSource.groovy
Config:

hibernate {
    ...
    naming_strategy = com.myco.myproj.CustomNamingStrategy
}
自定义命名类(在
src/groovy/com/myco/myproj/CustomNamingStrategy.groovy
下):


塔克斯!文档质量非常好,我应该经常重读:-)
package com.myco.myproj

import org.hibernate.cfg.ImprovedNamingStrategy
import org.hibernate.util.StringHelper

class CustomNamingStrategy extends ImprovedNamingStrategy {

    String propertyToColumnName(String propertyName) {
        "prefix_" + StringHelper.unqualify(propertyName)
    }
}