grails - 多个数据库

标签 grails

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

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

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 is not mapped [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个数据库?

提前致谢 。

最佳答案

您必须将其分为两个查询,首先获取ID,然后在主要查询中使用ID。该插件将您的域类分别划分到各自独立的SessionFactory中,因此您无法加入Hibernate。

关于grails - 多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2400476/

相关文章:

Grails BuildConfig.groovy,构建、编译和运行时的区别?

grails - 如何确保真正的一对多关系

authentication - 从 Grails 中的过滤器定义 Controller 可访问变量

grails - 为什么我不能让我的记录器写入 Grails 中的文件附加程序?

grails - 建立 war 后使用不同版本的两种mail.jar

javascript - 在 Grails 的 JavaScript 源代码中执行 groovy 语句

mysql - 在 mysql 中更改 joda 时间持续时间的顺序,如 PT1000S

mysql - 使用 grails 将数据从一个数据库表导入到另一个数据库表

java - 将 Grails 从 2.4.3 升级到 3.2.x 是否会改进 IDE 支持以及构建和启动时间

grails - 没有命名空间的Groovy XMLSlurper命名空间错误