gpt4 book ai didi

mysql - Grails + mysql 创建大写的表名和列名

转载 作者:行者123 更新时间:2023-11-29 05:25:08 35 4
gpt4 key购买 nike

从 Grails 域类创建 mysql 表不会生成大写字母的表名和列名。表名以小写形式创建。即使在使用大写字母的表名进行逆向工程时,域类也仅以小写字母生成。如何创建表名和列名大写的表?

最佳答案

您可以使用自定义 NamingStrategy 自定义表名。默认情况下,Grails 使用 ImprovedNamingStrategy,但您可以按照文档中的说明使用您的:http://grails.org/doc/latest/guide/GORM.html#customNamingStrategy

ImprovedNamingStrategy 的这个子类将生成大写名称:

package com.foo.bar

import org.hibernate.cfg.ImprovedNamingStrategy

class UppercaseNamingStrategy extends ImprovedNamingStrategy {

private static final long serialVersionUID = 1

String classToTableName(String className) {
super.classToTableName(className).toUpperCase()
}

String collectionTableName(String ownerEntity, String ownerEntityTable, String associatedEntity, String associatedEntityTable, String propertyName) {
super.collectionTableName(ownerEntity, ownerEntityTable, associatedEntity, associatedEntityTable, propertyName).toUpperCase()
}

String logicalCollectionTableName(String tableName, String ownerEntityTable, String associatedEntityTable, String propertyName) {
super.logicalCollectionTableName(tableName, ownerEntityTable, associatedEntityTable, propertyName).toUpperCase()
}

String tableName(String tableName) {
super.tableName(tableName).toUpperCase()
}
}

hibernate block 的 DataSource.groovy 中指定:

hibernate {
...
naming_strategy = com.foo.bar.UppercaseNamingStrategy
}

关于mysql - Grails + mysql 创建大写的表名和列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21083340/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com