grails - datasources插件,domainClass未映射

时间:2013-01-18 21:56:21

标签: grails

使用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")
}

我想要的是在数据库A中映射domainA和在数据库B中映射的域B.

我在Config.groovy中使用grails.config.locations获取数据库A,使用此配置使用数据库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会有所帮助吗?

1 个答案:

答案 0 :(得分: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])
}