【问题标题】:Prefix column names in GORMGORM 中的列名前缀
【发布时间】:2011-10-05 09:36:06
【问题描述】:

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

所以我总是要添加一个

static mapping = {
    status column:'prefix_status'
}

到我的课。

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

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

【问题讨论】:

    标签: grails grails-orm


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!文档质量非常好,我应该更频繁地重新阅读它:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多