Grails多个数据库

时间:2010-03-08 10:04:12

标签: grails

我们如何在2个数据库上编写查询。

我安装了数据源插件,域类是:

class Organization {
    long id
    long company_id
    String name

    static mapping = {
        version false
        table 'organization_'
        id column : 'organizationId'
        company_id column : 'companyId'
        name column : 'name'
    }
}

class Assoc {
    Integer id
    Integer association_id
    Integer organization_id


    static mapping = {
        version false
        table 'assoc'
        id column : 'ASSOC_ID'
        association_id column : 'ASSOCIATION_ID'
        organization_id column : 'ORGANIZATION_ID'
    }
}

这是有效的:

def org = Organization.list()
def assoc = Assoc.list()

这不起作用:

def query = Organization.executeQuery("SELECT o.name as name, o.id FROM Organization o WHERE o.id IN (SELECT a.organization_id FROM Assoc a )")

错误:

  

org.hibernate.hql.ast.QuerySyntaxException:未映射Assoc   [SELECT o.name as name,o.id FROM org.com.domain.Organization o WHERE   o.id IN(SELECT a.organization_id FROM AssocOrg a)]

我们如何使用单个查询连接2个数据库?

提前感谢。

1 个答案:

答案 0 :(得分:1)

您必须将其拆分为两个查询,首先获取ID并使用主查询中的ID。该插件将您的域类分成每个独立的SessionFactory,因此您无法加入Hibernate。