我们如何在两个数据库上写查询。
我安装了数据源插件,域类是:
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/