我正在使用使用数据源的遗留代码。我在config.groovy
文件中定义它,但是当我在TEST模式下运行代码时,我需要以不同的方式定义数据源:
environments {
development {
grails.naming.entries = [
"jdbc/AS400DS": [
...
]
]
}
test {
grails.naming.entries = [
"java:comp/env/jdbc/AS400DS": [
...
]
]
}
}
这是正确和正常的吗?还是我错过了重要的事情?它有效,但我不明白为什么我必须以不同的方式定义jndi名称。
答案 0 :(得分: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"
}
}