0

grails 1.3.6を使用してデータソースプラグインを操作する(まもなくアップグレードされます)taglibをレンダリングするとこのエラーが発生します

org.springframework.orm.hibernate3.HibernateQueryException: DomainA is not mapped

これらはデータベースです(どちらもpostgresqlであり、同じサーバーにあります)。

database A
    schema x
        table domain_a
        table domain_b
database B
    schema x
        table DomainA
        table DomainB

これらは私のマッピングです:

class domainA { // Domain A is defined in a plugin
    mapping(table: "x.domain_a")
}

class domainB {
    mapping(table: "x.domain_b")
}

私が欲しいのは、domainAをデータベースAにマッピングし、domainBをデータベースBにマッピングすることです。

この構成では、データベースAのConfig.groovyとデータベースBのDatasources.groovyでgrails.config.locationsを使用しています。

datasource(name: 'databaseB') {
    driverClassName('org.postgresql.Driver')
    url('jdbc:postgresql://host/databaseB')
    username('user')
    password('****')
    domainClasses(['DomainB'])
    readOnly(true)
    dialect("org.hibernate.dialect.PostgreSQLDialect")
    pooled(true)
    environments(['development', 'test'])
}

問題と思われるものがわかりません

誰かがこの問題を抱えていますか、私が使用できる回避策はありますか?たぶん、grails 2へのアップグレードが役立つでしょうか?

4

1 に答える 1

0

そうですね、datasources.groovyにデータベースA(メインのデータソース)を使用して別のデータソースを作成し、そこにdomainA(および関連する他のすべてのドメイン)を含めることで、次のように解決しました。

import package.DomainA

datasource(name: 'databaseA') {
    driverClassName('org.postgresql.Driver')
    url('jdbc:postgresql://host/databaseA')
    username('user')
    password('***')
    domainClasses([DomainA, OtherDomains])
}
于 2013-01-21T15:59:55.383 に答える