DataSource表前缀

时间:2015-08-07 06:34:15

标签: grails

我们有多个使用不同数据库的应用程序。

因此我们决定只为所有数据使用一个数据库,因为应用程序中的某些数据属于一起。

该数据库将有大约100个表,我们希望使用表的前缀,我们可以看到该表所属的位置。

我可以使用<TextView android:id="@+id/preview_pane" android:layout_width="match_parent" android:layout_height="80sp" android:layout_gravity="center_horizontal" android:textSize="70sp" android:textColor="#DDDDDD" android:layout_marginTop="10sp" android:includeFontPadding="false" android:singleLine="true" android:scrollHorizontally="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" /> 在Mappings中更改它,但也许有一种更简单的方法。

我想也许有办法在DataSource中设置表Prefix?

修改

这是我的DataSource配置:

table: 'prefix_table'

1 个答案:

答案 0 :(得分:0)

查看“CustomNamingStrategy”下的文档: http://grails.github.io/grails-doc/latest/guide/GORM.html#customNamingStrategy

添加到项目的DataSource.groovy:

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

将此添加到您的项目src

package com.myco.myproj
import org.hibernate.cfg.ImprovedNamingStrategy
import org.hibernate.util.StringHelper

class CustomNamingStrategy extends ImprovedNamingStrategy {

    String classToTableName(String className) {
        "prefix_" + StringHelper.unqualify(className)
    }
}