我目前有以下代码来定义我的“用户”类
class User
{
String username
static mapping = {
table ConfigurationHolder.config.console.datasource.table.user.mapping ?: 'user'
}
}
这适用于grails 1.3.5,但升级到2.2.1后,grails继续抱怨ConfigurationHolder
被弃用。
所以在技术上它“仍然”工作正常,但是一旦他们删除了这个课程就会发生什么。文档说“使用依赖注入”。但我不能使用依赖注入,因为mapping
是静态的。
真正的问题是允许通过配置重命名表的“正确”方法是什么?
由于 颜
答案 0 :(得分:1)
您可以使用grails.util.Holders
类来访问配置:
class User
{
String username
static mapping = {
table Holders.config.console?.datasource?.table?.user?.mapping ?: 'user'
}
}
答案 1 :(得分:1)
applicationContext作为第一个参数传递给映射闭包。
有关详细信息,请参阅http://jira.grails.org/browse/GRAILS-8087和源代码:https://github.com/grails/grails-core/blob/2.2.x/grails-hibernate/src/main/groovy/org/codehaus/groovy/grails/orm/hibernate/cfg/HibernateMappingBuilder.groovy#L61。
使用示例:
class User
{
String username
static mapping = { ctx ->
table ctx.grailsApplication.config.console?.datasource?.table?.user?.mapping ?: 'user'
}
}
答案 2 :(得分:-1)
尝试注入grailsApplication。见这里:http://digitalbreed.com/2011/deprecation-of-configurationholder-in-grails-2