GORM 中的列名前缀

发布于 2024-12-07 21:25:26 字数 334 浏览 0 评论 0原文

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

所以我总是必须

static mapping = {
    status column:'prefix_status'
}

在我的课程中添加一个。

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

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

with every project, I automatically run into a problem with reserved SQL word when I use properties like status or user in my Grails domain classes.

So I always have to add a

static mapping = {
    status column:'prefix_status'
}

to my classes.

I now wonder if there is an easy way to prefix all columns with a given string?

If there is nothing out of the box, I guess it would be possible to create a plugin which automagically injects such a mapping in all domain classes - can someone point me to a code example which modifies a class whenever it changes?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南汐寒笙箫 2024-12-14 21:25:26

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

对象关系映射 (GORM) - 自定义命名策略< /a>

添加到 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)
    }
}

This is already answered in the manual:

Object Relational Mapping (GORM) - Custom Naming Strategy

Add to DataSource.groovy Config:

hibernate {
    ...
    naming_strategy = com.myco.myproj.CustomNamingStrategy
}

Custom Naming Class (under 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)
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文