2011-02-08 57 views
1

我正在使用使用数据源的遗留代码。我在config.groovy文件中定义它,但是当我运行的代码EN测试模式,我需要以不同的方式来定义数据源:测试和开发环境中的不同数据源

environments { 
    development { 
    grails.naming.entries = [ 
     "jdbc/AS400DS": [ 
       ... 
     ] 
    ] 
    } 
    test { 
    grails.naming.entries = [ 
     "java:comp/env/jdbc/AS400DS": [ 
       ... 
     ] 
    ] 
    } 
} 

这是正确的,正常吗?或者我错过了一些重要的东西?它有效,但我不明白为什么我必须以不同的方式定义jndi名称。

+0

对不起,你在config.groovy`environments {test {...}}`或者`test`上写了什么?你在问什么?对我而言,`environments {development {...} test {...}}`起作用。 – 2011-02-08 11:44:54

回答

1

通常应该在grails-app/conf/DataSource.groovy中定义数据源连接。您仍然可以维护多个环境声明,语法更简单。您还可以为JNDI连接和休眠缓存定义全局设置。

dataSource { 
    pooled = false 
} 

hibernate { 
    cache.use_second_level_cache=true 
    cache.use_query_cache=true 
    cache.provider_class='org.hibernate.cache.EhCacheProvider' 
} 

// environment specific settings 
environments { 
    development { 
     dataSource { 
      dbCreate = "validate" // one of 'create', 'create-drop','update' 
      jndiName = "java:comp/env/jdbc/databaseName" 
     } 
    } 
    test { 
     dataSource { 
      driverClassName = "com.mysql.jdbc.Driver" 
      username = "username" 
      password = "password" 
      dbCreate = "validate" // one of 'create', 'create-drop','update' 
      url = "jdbc:mysql://127.0.0.1:3306/databaseName" 
    } 
} 
相关问题