GORM中的前缀列名称

时间:2011-10-05 09:36:06

标签: grails gorm

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

所以我总是要添加一个

static mapping = {
    status column:'prefix_status'
}

到我的班级。

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

如果没有任何开箱即用的东西,我想有可能创建一个插件,在所有域类中自动注入这样的映射 - 有人可以指向一个代码示例,它会在每次更改时修改一个类吗? / p>

1 个答案:

答案 0 :(得分:8)

手册中已经回答了这个问题:

Object Relational Mapping (GORM) - Custom Naming Strategy

添加到DataSource.groovy配置:

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