我们如何在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个数据库?
提前感谢。
答案 0 :(得分:1)
您必须将其拆分为两个查询,首先获取ID并使用主查询中的ID。该插件将您的域类分成每个独立的SessionFactory,因此您无法加入Hibernate。