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。

我在 Config.groovy 中为数据库 A 使用 grails.config.locations,在数据库 B 中使用 Datasources.groovy,并使用以下配置:

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 回答