別の質問でこれを尋ねてみましたが、詳細を入れすぎた可能性があります。
Grails と複数のデータソースを使用しています。サービスを使用してデータソースを宣言する場合、それはまったく機能しません。
static datasource = "db1"
何があっても、これはGrails Servicesでうまくいきませんでした
ヘルプ/提案をありがとう。
== これを編集して Datasource.groovy を含めます
これで、2 番目のデータベースのドメイン オブジェクトで静的マッピングを使用すると、問題なく動作します。ただし、どのデータベースに書き込む必要があるかをサービスに決定させたいので、サービスのデータソース属性がドキュメントのように機能することを望んでいました。
ドメイン オブジェクトが「すべて」のデータ ソースを使用することを宣言すると、サービスはデフォルトのデータ ソースに書き込みます。
静的データソース = "db21"
ドメイン オブジェクトが「db1」データソースを使用することを宣言すると、サービスは db1 データソースに書き込みます
- 2,3...N 個のデータソースを宣言すると、サービスはデフォルトのデータソースまたはドメイン groovy ファイルで宣言したデータソースにのみ書き込むように見えます。ドキュメントには、サービスを使用してデータソースを選択できるはずだと書かれています。
=============== 編集 ==============
dataSource {
pooled = true
driverClassName = "org.h2.Driver"
username = "sa"
password = ""
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "validate"
url = "jdbc:h2:devDb;MVCC=TRUE"
}
dataSource_db1 {
dbCreate = "validate"
url = "jdbc:h2:dev1Db;MVCC=TRUE"
pooled = true
driverClassName = "org.h2.Driver"
username = "sa"
password = ""
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:h2:mem:testDb;MVCC=TRUE"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:h2:prodDb;MVCC=TRUE"
pooled = true
properties {
maxActive = -1
minEvictableIdleTimeMillis=1800000
timeBetweenEvictionRunsMillis=1800000
numTestsPerEvictionRun=3
testOnBorrow=true
testWhileIdle=true
testOnReturn=true
validationQuery="SELECT 1"
}
}
}
}